emacs.d/clones/lisp/www.cs.cmu.edu/Groups/AI/html/cltl/clm/node326.html

44 lines
2.6 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3O//DTD W3 HTML 2.0//EN">
<!Converted with LaTeX2HTML 0.6.5 (Tue Nov 15 1994) by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds >
<HEAD>
<TITLE>29.3.11. Interactive Condition Handling</TITLE>
</HEAD>
<BODY>
<meta name="description" value=" Interactive Condition Handling">
<meta name="keywords" value="clm">
<meta name="resource-type" value="document">
<meta name="distribution" value="global">
<P>
<b>Common Lisp the Language, 2nd Edition</b>
<BR> <HR><A NAME=tex2html5767 HREF="node327.html"><IMG ALIGN=BOTTOM ALT="next" SRC="icons/next_motif.gif"></A> <A NAME=tex2html5765 HREF="node315.html"><IMG ALIGN=BOTTOM ALT="up" SRC="icons/up_motif.gif"></A> <A NAME=tex2html5759 HREF="node325.html"><IMG ALIGN=BOTTOM ALT="previous" SRC="icons/previous_motif.gif"></A> <A NAME=tex2html5769 HREF="node1.html"><IMG ALIGN=BOTTOM ALT="contents" SRC="icons/contents_motif.gif"></A> <A NAME=tex2html5770 HREF="index.html"><IMG ALIGN=BOTTOM ALT="index" SRC="icons/index_motif.gif"></A> <BR>
<B> Next:</B> <A NAME=tex2html5768 HREF="node327.html"> Serious Conditions</A>
<B>Up:</B> <A NAME=tex2html5766 HREF="node315.html"> Survey of Concepts</A>
<B> Previous:</B> <A NAME=tex2html5760 HREF="node325.html"> Generalized Restarts</A>
<HR> <P>
<H2><A NAME=SECTION0033311000000000000000>29.3.11. Interactive Condition Handling</A></H2>
<P>
<img align=bottom alt="change_begin" src="gif/change_begin.gif"><br>
When a program does not know how to continue, and no active handler is able to
advise it, the ``interactive condition handler,'' or ``debugger,'' can be
entered. This happens implicitly through the use of functions such as <tt>error</tt>
and <tt>cerror</tt>, or explicitly through the use of the function <tt>invoke-debugger</tt>.
<P>
The interactive condition handler never returns directly; it returns only
through structured non-local transfer of control to specially defined restart
points that can be set up either by the system or by user code. The
mechanisms that support the establishment of such structured restart points
for portable code are outlined
in sections <A HREF="node320.html#RESTARTS">29.3.5</A> through <A HREF="node325.html#LASTRESTARTSSECTION">29.3.10</A>.
<P>
Actually, implementations may also provide extended debugging facilities that
allow return from arbitrary stack frames. Although such commands are frequently
useful in practice, their effects are implementation-dependent because they
violate the Common Lisp program abstraction. The effect of using such
commands is undefined with respect to Common Lisp.
<br><img align=bottom alt="change_end" src="gif/change_end.gif">
<P>
<HR>
<P><ADDRESS>
AI.Repository@cs.cmu.edu
</ADDRESS>
</BODY>