type-error-datum (ANSI and GNU Common Lisp Document)

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

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

`type-error-datum` condition ⇒ datum

`type-error-expected-type` condition ⇒ expected-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