Mercurial > emacs
diff doc/lispref/control.texi @ 107754:c065a9e361c6
Explain how to re-throw a signal.
control.texi (Handling Errors): How to re-throw a signal caught
by condition-case.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Wed, 31 Mar 2010 12:43:53 +0300 |
parents | 1d1d5d9bd884 |
children | 731bea61f976 |
line wrap: on
line diff
--- a/doc/lispref/control.texi Wed Mar 31 12:08:40 2010 +0300 +++ b/doc/lispref/control.texi Wed Mar 31 12:43:53 2010 +0300 @@ -1023,6 +1023,20 @@ If @var{var} is @code{nil}, that means no variable is bound. Then the error symbol and associated data are not available to the handler. + +@cindex rethrow a signal +Sometimes it is necessary to re-throw a signal caught by +@code{condition-case}, for some outer-level handler to catch. Here's +how to do that: + +@smallexample + (signal (car err) (cdr err)) +@end smallexample + +@noindent +where @code{err} is the error description variable, the first argument +to @code{condition-case} whose error condition you want to re-throw. +@xref{Definition of signal}. @end defspec @defun error-message-string error-description @@ -1109,6 +1123,7 @@ @end smallexample @end defmac + @node Error Symbols @subsubsection Error Symbols and Condition Names @cindex error symbol