handler-case establishes exception handlers for the duration
of the execution of expr
.
If during the execution of expr
,
a condition is signalled, and the condition is an instance of
the class
of one of the handler clauses, then the corresponding
body
forms are executed. In this case, the
value(s) of the handler-case is the value(s) of the last body
form in the handler clause. Furthermore,
during the execution of the body
forms,
the handlers established by this handler-case are no longer active
(the handler taking control unwinds the dynamic stack to this point before
executing the body
forms).
If the condition: keyword is used in a clause,
then the condition object is bound to a variable var
with the body
forms in it's scope.
The clauses are checked in the order they are given in the handler-case.
If no condition is signalled during the execution of expr
,
then the values of the entire handler-case are the values returned
by
the expr
.