condition
,
t
All types of conditions, whether error or non-error, must inherit from this type.
No additional subtype relationships among the specified subtypes of type condition
are allowed, except when explicitly mentioned in the text; however
implementations are permitted to introduce additional types
and one of these types can be a subtype of any
number of the subtypes of type condition
.
Whether a user-defined condition type has slots that are accessible by with-slots is implementation-dependent. Furthermore, even in an implementation in which user-defined condition types would have slots, it is implementation-dependent whether any condition types defined in this document have such slots or, if they do, what their names might be; only the reader functions documented by this specification may be relied upon by portable code.
Conforming code must observe the following restrictions related to conditions:
define-condition
, not defclass
, must be used
to define new condition types.
make-condition
, not make-instance
, must be used to
create condition objects explicitly.
define-condition
, not defmethod
for print-object
, must be used to define a condition reporter.
slot-value
, slot-boundp
, slot-makunbound
,
and with-slots
must not be used on condition objects.
Instead, the appropriate accessor functions (defined by define-condition
)
should be used.