Merge from emacs-24; up to 2012-05-07T14:57:18Z!michael.albinus@gmx.de
[bpt/emacs.git] / doc / lispref / errors.texi
1 @c -*-texinfo-*-
2 @c This is part of the GNU Emacs Lisp Reference Manual.
3 @c Copyright (C) 1990-1993, 1999, 2001-2012 Free Software Foundation, Inc.
4 @c See the file elisp.texi for copying conditions.
5 @node Standard Errors
6 @appendix Standard Errors
7 @cindex standard errors
8
9 Here is a list of the more important error symbols in standard Emacs,
10 grouped by concept. The list includes each symbol's message (on the
11 @code{error-message} property of the symbol) and a cross reference to a
12 description of how the error can occur.
13
14 Each error symbol has an @code{error-conditions} property that is a
15 list of symbols. Normally this list includes the error symbol itself
16 and the symbol @code{error}. Occasionally it includes additional
17 symbols, which are intermediate classifications, narrower than
18 @code{error} but broader than a single error symbol. For example, all
19 the errors in accessing files have the condition @code{file-error}. If
20 we do not say here that a certain error symbol has additional error
21 conditions, that means it has none.
22
23 As a special exception, the error symbol @code{quit} does not have the
24 condition @code{error}, because quitting is not considered an error.
25
26 @c You can grep for "(put 'foo 'error-conditions ...) to find
27 @c examples defined in Lisp. Eg soap-client.el, sasl.el.
28 Most of these error symbols are defined in C (mainly @file{data.c}),
29 but some are defined in Lisp. For example, the file @file{userlock.el}
30 defines the @code{file-locked} and @code{file-supersession} errors.
31 Several of the specialized Lisp libraries distributed with Emacs
32 define their own error symbols. We do not attempt to list of all
33 those here.
34
35 @xref{Errors}, for an explanation of how errors are generated and
36 handled.
37
38 @table @code
39 @item error
40 @code{"error"}@*
41 @xref{Errors}.
42
43 @item quit
44 @code{"Quit"}@*
45 @xref{Quitting}.
46
47 @item args-out-of-range
48 @code{"Args out of range"}@*
49 This happens when trying to access an element beyond the range of a
50 sequence or buffer.@*
51 @xref{Sequences Arrays Vectors}, @xref{Text}.
52
53 @item arith-error
54 @code{"Arithmetic error"}@*
55 @xref{Arithmetic Operations}.
56
57 @item beginning-of-buffer
58 @code{"Beginning of buffer"}@*
59 @xref{Character Motion}.
60
61 @item buffer-read-only
62 @code{"Buffer is read-only"}@*
63 @xref{Read Only Buffers}.
64
65 @item circular-list
66 @code{"List contains a loop"}@*
67 This happens when some operations (e.g. resolving face names)
68 encounter circular structures.@*
69 @xref{Circular Objects}.
70
71 @item cl-assertion-failed
72 @code{"Assertion failed"}@*
73 This happens when the @code{assert} macro fails a test.@*
74 @xref{Assertions,,, cl, Common Lisp Extensions}.
75
76 @item coding-system-error
77 @code{"Invalid coding system"}@*
78 @xref{Lisp and Coding Systems}.
79
80 @item cyclic-function-indirection
81 @code{"Symbol's chain of function indirections contains a loop"}@*
82 @xref{Function Indirection}.
83
84 @item cyclic-variable-indirection
85 @code{"Symbol's chain of variable indirections contains a loop"}@*
86 @xref{Variable Aliases}.
87
88 @item dbus-error
89 @code{"D-Bus error"}@*
90 This is only defined if Emacs was compiled with D-Bus support.@*
91 @xref{Errors and Events,,, dbus, D-Bus integration in Emacs}.
92
93 @item end-of-buffer
94 @code{"End of buffer"}@*
95 @xref{Character Motion}.
96
97 @item end-of-file
98 @code{"End of file during parsing"}@*
99 Note that this is not a subcategory of @code{file-error},
100 because it pertains to the Lisp reader, not to file I/O.@*
101 @xref{Input Functions}.
102
103 @item file-already-exists
104 This is a subcategory of @code{file-error}.@*
105 @xref{Writing to Files}.
106
107 @item file-date-error
108 This is a subcategory of @code{file-error}. It occurs when
109 @code{copy-file} tries and fails to set the last-modification time of
110 the output file.@*
111 @xref{Changing Files}.
112
113 @item file-error
114 We do not list the error-strings of this error and its subcategories,
115 because the error message is normally constructed from the data items
116 alone when the error condition @code{file-error} is present. Thus,
117 the error-strings are not very relevant. However, these error symbols
118 do have @code{error-message} properties, and if no data is provided,
119 the @code{error-message} property @emph{is} used.@*
120 @xref{Files}.
121
122 @c jka-compr.el
123 @item compression-error
124 This is a subcategory of @code{file-error}, which results from
125 problems handling a compressed file.@*
126 @xref{How Programs Do Loading}.
127
128 @c userlock.el
129 @item file-locked
130 This is a subcategory of @code{file-error}.@*
131 @xref{File Locks}.
132
133 @c userlock.el
134 @item file-supersession
135 This is a subcategory of @code{file-error}.@*
136 @xref{Modification Time}.
137
138 @c net/ange-ftp.el
139 @item ftp-error
140 This is a subcategory of @code{file-error}, which results from problems
141 in accessing a remote file using ftp.@*
142 @xref{Remote Files,,, emacs, The GNU Emacs Manual}.
143
144 @item invalid-function
145 @code{"Invalid function"}@*
146 @xref{Function Indirection}.
147
148 @item invalid-read-syntax
149 @code{"Invalid read syntax"}@*
150 @xref{Printed Representation}.
151
152 @item invalid-regexp
153 @code{"Invalid regexp"}@*
154 @xref{Regular Expressions}.
155
156 @c simple.el
157 @item mark-inactive
158 @code{"The mark is not active now"}@*
159 @xref{The Mark}.
160
161 @item no-catch
162 @code{"No catch for tag"}@*
163 @xref{Catch and Throw}.
164
165 @ignore
166 @c Not actually used for anything? Probably definition should be removed.
167 @item protected-field
168 @code{"Attempt to modify a protected field"}
169 @end ignore
170
171 @item scan-error
172 @code{"Scan error"}@*
173 This happens when certain syntax-parsing functions
174 find invalid syntax or mismatched parentheses.@*
175 @xref{List Motion}, and @ref{Parsing Expressions}.
176
177 @item search-failed
178 @code{"Search failed"}@*
179 @xref{Searching and Matching}.
180
181 @item setting-constant
182 @code{"Attempt to set a constant symbol"}@*
183 The values of the symbols @code{nil} and @code{t},
184 and any symbols that start with @samp{:},
185 may not be changed.@*
186 @xref{Constant Variables, , Variables that Never Change}.
187
188 @c simple.el
189 @item text-read-only
190 @code{"Text is read-only"}@*
191 This is a subcategory of @code{buffer-read-only}.@*
192 @xref{Special Properties}.
193
194 @item undefined-color
195 @code{"Undefined color"}@*
196 @xref{Color Names}.
197
198 @item void-function
199 @code{"Symbol's function definition is void"}@*
200 @xref{Function Cells}.
201
202 @item void-variable
203 @code{"Symbol's value as variable is void"}@*
204 @xref{Accessing Variables}.
205
206 @item wrong-number-of-arguments
207 @code{"Wrong number of arguments"}@*
208 @xref{Classifying Lists}.
209
210 @item wrong-type-argument
211 @code{"Wrong type argument"}@*
212 @xref{Type Predicates}.
213 @end table
214
215 The following kinds of error, which are classified as special cases of
216 @code{arith-error}, can occur on certain systems for invalid use of
217 mathematical functions. @xref{Math Functions}.
218
219 @table @code
220 @item domain-error
221 @code{"Arithmetic domain error"}
222
223 @item overflow-error
224 @code{"Arithmetic overflow error"}@*
225 This is a subcategory of @code{domain-error}.
226
227 @item range-error
228 @code{"Arithmetic range error"}
229
230 @item singularity-error
231 @code{"Arithmetic singularity error"}@*
232 This is a subcategory of @code{domain-error}.
233
234 @item underflow-error
235 @code{"Arithmetic underflow error"}@*
236 This is a subcategory of @code{domain-error}.
237 @end table