CLCS

Condition Types

Figure 9–1 lists the standardized condition types. Additional condition types can be defined by using define-condition.

 arithmetic-error                 floating-point-overflow  simple-type-error    cell-error                       floating-point-underflow simple-warning       condition                        package-error            storage-condition    control-error                    parse-error              stream-error         division-by-zero                 print-not-readable       style-warning        end-of-file                      program-error            type-error           error                            reader-error             unbound-slot         file-error                       serious-condition        unbound-variable     floating-point-inexact           simple-condition         undefined-function   floating-point-invalid-operation simple-error             warning            

Figure 9–1: Standardized Condition Types

All condition types are subtypes of type condition. That is,

 (typep c 'condition) ⇒  true

if and only if c is a condition.

Implementations must define all specified subtype relationships. Except where noted, all subtype relationships indicated in this document are not mutually exclusive. A condition inherits the structure of its supertypes.

The metaclass of the class condition is not specified. Names of condition types may be used to specify supertype relationships in define-condition, but the consequences are not specified if an attempt is made to use a condition type as a superclass in a defclass form.

Figure 9–2 shows operators that define condition types and creating conditions.

  define-condition  make-condition    

Figure 9–2: Operators that define and create conditions.

Figure 9–3 shows operators that read the value of condition slots.

arithmetic-error-operandssimple-condition-format-arguments
arithmetic-error-operationsimple-condition-format-control
cell-error-namestream-error-stream
file-error-pathnametype-error-datum
package-error-packagetype-error-expected-type
print-not-readable-objectunbound-slot-instance
Figure 9–3: Operators that read condition slots.