1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
| | @c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
@c Copyright (C) 1990--1993, 1999, 2001--2021 Free Software Foundation,
@c Inc.
@c See the file elisp.texi for copying conditions.
@node Standard Errors
@appendix Standard Errors
@cindex standard errors
Here is a list of the more important error symbols in standard Emacs, grouped
by concept. The list includes each symbol's message and a cross reference
to a description of how the error can occur.
Each error symbol has a set of parent error conditions that is a
list of symbols. Normally this list includes the error symbol itself
and the symbol @code{error}. Occasionally it includes additional
symbols, which are intermediate classifications, narrower than
@code{error} but broader than a single error symbol. For example, all
the errors in accessing files have the condition @code{file-error}. If
we do not say here that a certain error symbol has additional error
conditions, that means it has none.
As a special exception, the error symbol @code{quit} does not have the
condition @code{error}, because quitting is not considered an error.
Most of these error symbols are defined in C (mainly @file{data.c}),
but some are defined in Lisp. For example, the file @file{userlock.el}
defines the @code{file-locked} and @code{file-supersession} errors.
Several of the specialized Lisp libraries distributed with Emacs
define their own error symbols. We do not attempt to list of all
those here.
@xref{Errors}, for an explanation of how errors are generated and
handled.
@table @code
@item error
The message is @samp{error}. @xref{Errors}.
@item quit
The message is @samp{Quit}. @xref{Quitting}.
@item args-out-of-range
The message is @samp{Args out of range}. This happens when trying to
access an element beyond the range of a sequence, buffer, or other
container-like object. @xref{Sequences Arrays Vectors}, and see
@ref{Text}.
@item arith-error
The message is @samp{Arithmetic error}. This occurs when trying to
perform integer division by zero. @xref{Numeric Conversions}, and
see @ref{Arithmetic Operations}.
@item beginning-of-buffer
The message is @samp{Beginning of buffer}. @xref{Character Motion}.
@item buffer-read-only
The message is @samp{Buffer is read-only}. @xref{Read Only Buffers}.
@item circular-list
The message is @samp{List contains a loop}. This happens when a
circular structure is encountered. @xref{Circular Objects}.
@item cl-assertion-failed
The message is @samp{Assertion failed}. This happens when the
@code{cl-assert} macro fails a test. @xref{Assertions,,, cl, Common Lisp
Extensions}.
@item coding-system-error
The message is @samp{Invalid coding system}. @xref{Lisp and Coding
Systems}.
@item cyclic-function-indirection
The message is @samp{Symbol's chain of function indirections contains
a loop}. @xref{Function Indirection}.
@item cyclic-variable-indirection
The message is @samp{Symbol's chain of variable indirections contains
a loop}. @xref{Variable Aliases}.
@item dbus-error
The message is @samp{D-Bus error}. @xref{Errors and Events,,, dbus,
D-Bus integration in Emacs}.
@item end-of-buffer
The message is @samp{End of buffer}. @xref{Character Motion}.
@item end-of-file
The message is @samp{End of file during parsing}. Note that this is
not a subcategory of @code{file-error}, because it pertains to the
Lisp reader, not to file I/O@. @xref{Input Functions}.
@item file-already-exists
This is a subcategory of @code{file-error}. @xref{Writing to Files}.
@item file-date-error
This is a subcategory of @code{file-error}. It occurs when
@code{copy-file} tries and fails to set the last-modification time of
the output file. @xref{Changing Files}.
@item file-error
We do not list the error-strings of this error and its subcategories,
because the error message is normally constructed from the data items
alone when the error condition @code{file-error} is present. Thus,
the error-strings are not very relevant. However, these error symbols
do have @code{error-message} properties, and if no data is provided,
the @code{error-message} property @emph{is} used. @xref{Files}.
@item file-missing
This is a subcategory of @code{file-error}. It occurs when an
operation attempts to act on a file that is missing. @xref{Changing
Files}.
@c jka-compr.el
@item compression-error
This is a subcategory of @code{file-error}, which results from
problems handling a compressed file. @xref{How Programs Do Loading}.
@c userlock.el
@item file-locked
This is a subcategory of @code{file-error}. @xref{File Locks}.
@c userlock.el
@item file-supersession
This is a subcategory of @code{file-error}. @xref{Modification Time}.
@c filenotify.el
@item file-notify-error
This is a subcategory of @code{file-error}. It happens, when a file
could not be watched for changes. @xref{File Notifications}.
@item remote-file-error
This is a subcategory of @code{file-error}, which results from
problems in accessing a remote file. @xref{Remote Files,,, emacs, The
GNU Emacs Manual}. Often, this error appears when timers, process
filters, process sentinels or special events in general try to access
a remote file, and collide with another remote file operation. In
general it is a good idea to write a bug report.
@xref{Bugs,,, emacs, The GNU Emacs Manual}.
@c net/ange-ftp.el
@item ftp-error
This is a subcategory of @code{remote-file-error}, which results from
problems in accessing a remote file using ftp. @xref{Remote Files,,,
emacs, The GNU Emacs Manual}.
@item invalid-function
The message is @samp{Invalid function}. @xref{Function Indirection}.
@item invalid-read-syntax
The message is usually @samp{Invalid read syntax}. @xref{Printed
Representation}. This error can also be raised by commands like
@code{eval-expression} when there's text following an expression. In
that case, the message is @samp{Trailing garbage following expression}.
@item invalid-regexp
The message is @samp{Invalid regexp}. @xref{Regular Expressions}.
@c simple.el
@item mark-inactive
The message is @samp{The mark is not active now}. @xref{The Mark}.
@item no-catch
The message is @samp{No catch for tag}. @xref{Catch and Throw}.
@ignore
@c Not actually used for anything? Probably definition should be removed.
@item protected-field
The message is @samp{Attempt to modify a protected file}.
@end ignore
@item range-error
The message is @code{Arithmetic range error}.
@item overflow-error
The message is @samp{Arithmetic overflow error}. This is a subcategory
of @code{range-error}.
This can happen with integers exceeding the @code{integer-width} limit.
@xref{Integer Basics}.
@item scan-error
The message is @samp{Scan error}. This happens when certain
syntax-parsing functions find invalid syntax or mismatched
parentheses. Conventionally raised with three argument: a
human-readable error message, the start of the obstacle that cannot be
moved over, and the end of the obstacle. @xref{List Motion}, and
see @ref{Parsing Expressions}.
@item search-failed
The message is @samp{Search failed}. @xref{Searching and Matching}.
@item setting-constant
The message is @samp{Attempt to set a constant symbol}. This happens
when attempting to assign values to @code{nil}, @code{t},
@code{most-positive-fixnum}, @code{most-negative-fixnum}, and keyword
symbols. It also happens when attempting to assign values to
@code{enable-multibyte-characters} and some other symbols whose direct
assignment is not allowed for some reason. @xref{Constant Variables}.
@c simple.el
@item text-read-only
The message is @samp{Text is read-only}. This is a subcategory of
@code{buffer-read-only}. @xref{Special Properties}.
@item undefined-color
The message is @samp{Undefined color}. @xref{Color Names}.
@item user-error
The message is the empty string. @xref{Signaling Errors}.
@item user-search-failed
This is like @samp{search-failed}, but doesn't trigger the debugger,
like @samp{user-error}. @xref{Signaling Errors}, and see @ref{Searching
and Matching}. This is used for searching in Info files, see @ref{Search
Text,,,info,Info}.
@item void-function
The message is @samp{Symbol's function definition is void}.
@xref{Function Cells}.
@item void-variable
The message is @samp{Symbol's value as variable is void}.
@xref{Accessing Variables}.
@item wrong-number-of-arguments
The message is @samp{Wrong number of arguments}. @xref{Argument List}.
@item wrong-type-argument
The message is @samp{Wrong type argument}. @xref{Type Predicates}.
@item unknown-image-type
The message is @samp{Cannot determine image type}. @xref{Images}.
@item inhibited-interaction
The message is @samp{User interaction while inhibited}. This error is
signalled when @code{inhibit-interaction} is non-@code{nil} and a user
interaction function (like @code{read-from-minibuffer}) is called.
@end table
@ignore The following seem to be unused now.
The following kinds of error, which are classified as special cases of
@code{arith-error}, can occur on certain systems for invalid use of
mathematical functions. @xref{Math Functions}.
@table @code
@item domain-error
The message is @samp{Arithmetic domain error}.
@item singularity-error
The message is @samp{Arithmetic singularity error}. This is a
subcategory of @code{domain-error}.
@item underflow-error
The message is @samp{Arithmetic underflow error}. This is a
subcategory of @code{domain-error}.
@end table
@end ignore
|