Next: , Previous: type-error, Up: Types and Classes Dictionary


4.4.30 type-error-datum, type-error-expected-type [Function]

type-error-datum conditiondatum

type-error-expected-type conditionexpected-type

Arguments and Values::

condition—a condition of type type-error.

datum—an object.

expected-type—a type specifier.

Description::

type-error-datum returns the offending datum in the situation represented by the condition.

type-error-expected-type returns the expected type of the offending datum in the situation represented by the condition.

Examples::
      (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
See Also::

type-error, Conditions