Function TYPE-ERROR-DATUM, TYPE-ERROR-EXPECTED-TYPE

UP


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

副作用

なし。

影響

なし。

例外

なし。

参考

type-error, 9. コンディション

備考

なし。


TOP, Github