diff options
Diffstat (limited to 'doc/lispref/control.texi')
| -rw-r--r-- | doc/lispref/control.texi | 19 |
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 |
| 893 | This deletes the file named @var{filename}, catching any error and | 893 | This deletes the file named @var{filename}, catching any error and |
| 894 | returning @code{nil} if an error occurs@footnote{ | 894 | returning @code{nil} if an error occurs. (You can use the macro |
| 895 | Actually, you should use @code{ignore-errors} in such a simple case; | 895 | @code{ignore-errors} for a simple case like this; see below.) |
| 896 | see 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 |
| 899 | are predictable, such as failure to open a file in a call to | 898 | are 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 | |||
| 949 | given error will invoke the debugger only if @code{debug-on-error} and | 948 | given error will invoke the debugger only if @code{debug-on-error} and |
| 950 | the other usual filtering mechanisms say it should. @xref{Error Debugging}. | 949 | the other usual filtering mechanisms say it should. @xref{Error Debugging}. |
| 951 | 950 | ||
| 951 | @defmac condition-case-no-debug var protected-form handlers@dots{} | ||
| 952 | The macro @code{condition-case-no-debug} provides another way to | ||
| 953 | handle debugging of such forms. It behaves exactly like | ||
| 954 | @code{condition-case}, unless the variable @code{debug-on-error} is | ||
| 955 | non-@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 |
| 953 | returns control to that handler. To do so, Emacs unbinds all variable | 959 | returns control to that handler. To do so, Emacs unbinds all variable |
| 954 | bindings made by binding constructs that are being exited, and | 960 | bindings 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{} | ||
| 1132 | This macro is like a milder version of @code{ignore-errors}. Rather | ||
| 1133 | than suppressing errors altogether, it converts them into messages. | ||
| 1134 | Use this form around code that is not expected to signal errors, | ||
| 1135 | but should be robust if one does occur. Note that this macro | ||
| 1136 | uses @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 |