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
.