The next figure lists the standardized condition types.
Additional condition types can be defined by using define-condition.
|
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.
The next figure shows operators that define condition types and creating conditions.
The next figure shows operators that read the value of condition slots.
|
Figure 9.3: Operators that read condition slots.
A serious condition is a condition serious
enough to require interactive intervention if not handled.
Serious conditions are typically signaled with error or cerror;
non-serious conditions are typically signaled with signal or warn.