elisp: Standard Errors
Appendix F 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 an set of parent error conditions that is a
list of symbols. Normally this list includes the error symbol itself
and the symbol ‘error’. Occasionally it includes additional symbols,
which are intermediate classifications, narrower than ‘error’ but
broader than a single error symbol. For example, all the errors in
accessing files have the condition ‘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 ‘quit’ does not have the
condition ‘error’, because quitting is not considered an error.
Most of these error symbols are defined in C (mainly ‘data.c’), but
some are defined in Lisp. For example, the file ‘userlock.el’ defines
the ‘file-locked’ and ‘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.
Errors, for an explanation of how errors are generated and
handled.
‘error’
The message is ‘error’. Errors.
‘quit’
The message is ‘Quit’. Quitting.
‘args-out-of-range’
The message is ‘Args out of range’. This happens when trying to
access an element beyond the range of a sequence, buffer, or other
DONTPRINTYET container-like object. Sequences Arrays Vectors, and *NoteDONTPRINTYET container-like object. Sequences Arrays Vectors, and
Text.
‘arith-error’
The message is ‘Arithmetic error’. This occurs when trying to
perform integer division by zero. Numeric Conversions, and
Arithmetic Operations.
‘beginning-of-buffer’
The message is ‘Beginning of buffer’. Character Motion.
‘buffer-read-only’
The message is ‘Buffer is read-only’. Read Only Buffers.
‘circular-list’
The message is ‘List contains a loop’. This happens when a
circular structure is encountered. Circular Objects.
‘cl-assertion-failed’
The message is ‘Assertion failed’. This happens when the
‘cl-assert’ macro fails a test. (cl)Assertions.
‘coding-system-error’
The message is ‘Invalid coding system’. Lisp and Coding
Systems.
‘cyclic-function-indirection’
The message is ‘Symbol's chain of function indirections contains a
loop’. Function Indirection.
‘cyclic-variable-indirection’
The message is ‘Symbol's chain of variable indirections contains a
loop’. Variable Aliases.
‘dbus-error’
The message is ‘D-Bus error’. This is only defined if Emacs was
compiled with D-Bus support. (dbus)Errors and Events.
‘end-of-buffer’
The message is ‘End of buffer’. Character Motion.
‘end-of-file’
The message is ‘End of file during parsing’. Note that this is not
a subcategory of ‘file-error’, because it pertains to the Lisp
reader, not to file I/O. Input Functions.
‘file-already-exists’
This is a subcategory of ‘file-error’. Writing to Files.
‘file-date-error’
This is a subcategory of ‘file-error’. It occurs when ‘copy-file’
tries and fails to set the last-modification time of the output
file. Changing Files.
‘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 ‘file-error’ is
present. Thus, the error-strings are not very relevant. However,
these error symbols do have ‘error-message’ properties, and if no
data is provided, the ‘error-message’ property _is_ used.
Files.
‘compression-error’
This is a subcategory of ‘file-error’, which results from problems
handling a compressed file. How Programs Do Loading.
‘file-locked’
This is a subcategory of ‘file-error’. File Locks.
‘file-supersession’
This is a subcategory of ‘file-error’. Modification Time.
‘file-notify-error’
This is a subcategory of ‘file-error’. It happens, when a file
could not be watched for changes. File Notifications.
‘ftp-error’
This is a subcategory of ‘file-error’, which results from problems
in accessing a remote file using ftp. (emacs)Remote Files.
‘invalid-function’
The message is ‘Invalid function’. Function Indirection.
‘invalid-read-syntax’
The message is ‘Invalid read syntax’. Printed
Representation.
‘invalid-regexp’
The message is ‘Invalid regexp’. Regular Expressions.
‘mark-inactive’
The message is ‘The mark is not active now’. The Mark.
‘no-catch’
The message is ‘No catch for tag’. Catch and Throw.
‘scan-error’
The message is ‘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. List Motion,
and Parsing Expressions.
‘search-failed’
The message is ‘Search failed’. Searching and Matching.
‘setting-constant’
The message is ‘Attempt to set a constant symbol’. This happens
when attempting to assign values to ‘nil’, ‘t’, and keyword
symbols. Constant Variables.
‘text-read-only’
The message is ‘Text is read-only’. This is a subcategory of
‘buffer-read-only’. Special Properties.
‘undefined-color’
The message is ‘Undefined color’. Color Names.
‘user-error’
The message is the empty string. Signaling Errors.
‘void-function’
The message is ‘Symbol's function definition is void’.
Function Cells.
‘void-variable’
The message is ‘Symbol's value as variable is void’.
Accessing Variables.
‘wrong-number-of-arguments’
The message is ‘Wrong number of arguments’. Argument List.
‘wrong-type-argument’
The message is ‘Wrong type argument’. Type Predicates.