aboutsummaryrefslogtreecommitdiffstats
path: root/doc/lispref/control.texi
diff options
context:
space:
mode:
Diffstat (limited to 'doc/lispref/control.texi')
-rw-r--r--doc/lispref/control.texi19
1 files changed, 16 insertions, 3 deletions
diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi
index 0511f21007d..3673f753a0a 100644
--- a/doc/lispref/control.texi
+++ b/doc/lispref/control.texi
@@ -891,9 +891,8 @@ establishing an error handler, with the special form
891 891
892@noindent 892@noindent
893This deletes the file named @var{filename}, catching any error and 893This deletes the file named @var{filename}, catching any error and
894returning @code{nil} if an error occurs@footnote{ 894returning @code{nil} if an error occurs. (You can use the macro
895Actually, you should use @code{ignore-errors} in such a simple case; 895@code{ignore-errors} for a simple case like this; see below.)
896see below.}.
897 896
898 The @code{condition-case} construct is often used to trap errors that 897 The @code{condition-case} construct is often used to trap errors that
899are predictable, such as failure to open a file in a call to 898are predictable, such as failure to open a file in a call to
@@ -949,6 +948,13 @@ The effect of @code{debug} here is only to prevent
949given error will invoke the debugger only if @code{debug-on-error} and 948given error will invoke the debugger only if @code{debug-on-error} and
950the other usual filtering mechanisms say it should. @xref{Error Debugging}. 949the other usual filtering mechanisms say it should. @xref{Error Debugging}.
951 950
951@defmac condition-case-no-debug var protected-form handlers@dots{}
952The macro @code{condition-case-no-debug} provides another way to
953handle debugging of such forms. It behaves exactly like
954@code{condition-case}, unless the variable @code{debug-on-error} is
955non-@code{nil}, in which case it does not handle any errors at all.
956@end defmac
957
952 Once Emacs decides that a certain handler handles the error, it 958 Once Emacs decides that a certain handler handles the error, it
953returns control to that handler. To do so, Emacs unbinds all variable 959returns control to that handler. To do so, Emacs unbinds all variable
954bindings made by binding constructs that are being exited, and 960bindings made by binding constructs that are being exited, and
@@ -1122,6 +1128,13 @@ Here's the example at the beginning of this subsection rewritten using
1122@end smallexample 1128@end smallexample
1123@end defmac 1129@end defmac
1124 1130
1131@defmac with-demoted-errors body@dots{}
1132This macro is like a milder version of @code{ignore-errors}. Rather
1133than suppressing errors altogether, it converts them into messages.
1134Use this form around code that is not expected to signal errors,
1135but should be robust if one does occur. Note that this macro
1136uses @code{condition-case-no-debug} rather than @code{condition-case}.
1137@end defmac
1125 1138
1126@node Error Symbols 1139@node Error Symbols
1127@subsubsection Error Symbols and Condition Names 1140@subsubsection Error Symbols and Condition Names