Next: Taxonomy, Previous: Condition Instances, Up: Error System
Each condition has a condition type object associated with it. These objects are used as a means of focusing on related classes of conditions, first by concentrating all of the information about a specific class of condition in a single place, and second by specifying an inheritance relationship between types. This inheritance relationship forms the taxonomic structure of the condition hierarchy (see Taxonomy).
The following procedures consititute the abstraction for condition types.
Creates and returns a (new) condition type that is a specialization of generalization (if it is a condition type) or is the root of a new tree of condition types (if generalization is
#f
). For debugging purposes, the condition type has a name, and instances of this type contain storage for the fields specified by field-names (a list of symbols) in addition to the fields common to all conditions (type, continuation and restarts).Reporter is used to produce a description of a particular condition of this type. It may be a string describing the condition, a procedure of arity two (the first argument will be a condition of this type and the second a port) that will
write
the message to the given port, or#f
to specify that the reporter should be taken from the condition type generalization (or produce an “undocumented condition of type ...” message if generalization is#f
). The conventions used to form descriptions are spelled out in Error Messages.
Returns
#t
if the condition-type iscondition-type:error
or a specialization of it,#f
otherwise.
Returns a list of all of the field names for a condition of type condition-type. This is the set union of the fields specified when this condition-type was created with the
condition-type/field-names
of the generalization of this condition-type.