Common Lisp the Language, 2nd Edition
Errors may be signaled for a variety of reasons. Many built-in Common Lisp functions may signal an error when given incorrect arguments. Other functions, described in this chapter, may be called by user programs for the purpose of signaling an error.
When an error is signaled, it is handled in an implementation-dependent way. It is expected that each implementation of Common Lisp will provide an interactive debugger that prints the error message along with suitable contextual information such as which function detected the error. The user may interact with the debugger to examine or modify the state of the program in various ways, including abandoning the current computation (``aborting to top level'') and continuing from the error. What ``continuing'' means depends on how the error is signaled; the details of this are specified below for each error-signaling function.
An implementation may also choose to provide means (such as the
errset special form in MacLisp) for a program to trap
all errors and prevent the debugger from stepping in for
certain errors.
X3J13 voted in June 1988
(CONDITION-SYSTEM)
to adopt a proposal for a Common Lisp Condition System.
This was the result of the research and experimentation
alluded to in the preceding paragraph.
Conditions subsume and generalize the notion of errors.
The condition system also provides means for handling
conditions (of which errors are a special case) and
for restarting a computation after a condition has been signaled.
See chapter 29.
In the new terminology introduced in chapter 29,
what Lisp Machine Lisp called ``proceeding'' would be called
``restarting,'' and ``continuing'' refers to the particular
restart named continue.