CLHS: Condition Type CONDITION

#

Condition Type CONDITION

Class Precedence List:

condition, t

Description:

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.

* The `:report` option of 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.

The following X3J13 cleanup issues, not part of the specification, apply to this section:

- CONDITION-SLOTS:HIDDEN
- CLOS-CONDITIONS:INTEGRATE
- CLOS-CONDITIONS-AGAIN:ALLOW-SUBSET
- CONDITION-RESTARTS:BUGGY

Copyright 1996-2005, LispWorks Ltd. All rights reserved.