45 lines
2.6 KiB
HTML
45 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>
|