Next: Condition-Type Taxonomy, Previous: Condition Instances, Up: Error System [Contents][Index]
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 Condition-Type 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 is
condition-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.
Returns a list of all of the generalizations of condition-type. Notice that every condition type is considered a generalization of itself.
Returns #f
if and only if object is not a condition type.
Next: Condition-Type Taxonomy, Previous: Condition Instances, Up: Error System [Contents][Index]