% Function TYPE-ERROR-DATUM, TYPE-ERROR-EXPECTED-TYPE
Function TYPE-ERROR-DATUM
, TYPE-ERROR-EXPECTED-TYPE
type-error-datum
condition => datum
type-error-expected-type
condition => expected-type
condition - type-error
型のコンディション
datum - オブジェクト
expected-type - 型指定子
type-error-datum
は、conditionによって表現された状況の
問題のデータを返却します。
type-error-expected-type
は、conditionによって表現された状況の、
問題のデータに対する期待した型を返却します。
(defun fix-digits (condition)
(check-type condition type-error)
(let* ((digits '(zero one two three four
five six seven eight nine))
(val (position (type-error-datum condition) digits)))
(if (and val (subtypep 'fixnum (type-error-expected-type condition)))
(store-value 7))))
(defun foo (x)
(handler-bind ((type-error #'fix-digits))
(check-type x number)
(+ x 3)))
(foo 'seven)
=> 10
なし。
なし。
なし。
なし。