diff options
author | Guido van Rossum <guido@python.org> | 1994-01-02 01:22:07 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1994-01-02 01:22:07 (GMT) |
commit | 5fdeeeae2a12b9956cc84d62eae82f72cabc8664 (patch) | |
tree | ac0053479e10099850c8e0d06e31cb3afbf632bb /Doc/libexcs.tex | |
parent | 0b0719866e8a32d0a787e73bca9e79df1d1a74f8 (diff) | |
download | cpython-5fdeeeae2a12b9956cc84d62eae82f72cabc8664.zip cpython-5fdeeeae2a12b9956cc84d62eae82f72cabc8664.tar.gz cpython-5fdeeeae2a12b9956cc84d62eae82f72cabc8664.tar.bz2 |
Restructured library documentation
Diffstat (limited to 'Doc/libexcs.tex')
-rw-r--r-- | Doc/libexcs.tex | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/Doc/libexcs.tex b/Doc/libexcs.tex new file mode 100644 index 0000000..33083cd --- /dev/null +++ b/Doc/libexcs.tex @@ -0,0 +1,172 @@ +\section{Built-in Exceptions} + +Exceptions are string objects. Two distinct string objects with the +same value are different exceptions. This is done to force programmers +to use exception names rather than their string value when specifying +exception handlers. The string value of all built-in exceptions is +their name, but this is not a requirement for user-defined exceptions +or exceptions defined by library modules. + +The following exceptions can be generated by the interpreter or +built-in functions. Except where mentioned, they have an `associated +value' indicating the detailed cause of the error. This may be a +string or a tuple containing several items of information (e.g., an +error code and a string explaining the code). + +User code can raise built-in exceptions. This can be used to test an +exception handler or to report an error condition `just like' the +situation in which the interpreter raises the same exception; but +beware that there is nothing to prevent user code from raising an +inappropriate error. + +\renewcommand{\indexsubitem}{(built-in exception)} + +\begin{excdesc}{AttributeError} +% xref to attribute reference? + Raised when an attribute reference or assignment fails. (When an + object does not support attributes references or attribute assignments + at all, \code{TypeError} is raised.) +\end{excdesc} + +\begin{excdesc}{EOFError} +% XXXJH xrefs here + Raised when one of the built-in functions (\code{input()} or + \code{raw_input()}) hits an end-of-file condition (\EOF{}) without + reading any data. +% XXXJH xrefs here + (N.B.: the \code{read()} and \code{readline()} methods of file + objects return an empty string when they hit \EOF{}.) No associated value. +\end{excdesc} + +\begin{excdesc}{IOError} +% XXXJH xrefs here + Raised when an I/O operation (such as a \code{print} statement, the + built-in \code{open()} function or a method of a file object) fails + for an I/O-related reason, e.g., `file not found', `disk full'. +\end{excdesc} + +\begin{excdesc}{ImportError} +% XXXJH xref to import statement? + Raised when an \code{import} statement fails to find the module + definition or when a \code{from {\rm \ldots} import} fails to find a + name that is to be imported. +\end{excdesc} + +\begin{excdesc}{IndexError} +% XXXJH xref to sequences + Raised when a sequence subscript is out of range. (Slice indices are + silently truncated to fall in the allowed range; if an index is not a + plain integer, \code{TypeError} is raised.) +\end{excdesc} + +\begin{excdesc}{KeyError} +% XXXJH xref to mapping objects? + Raised when a mapping (dictionary) key is not found in the set of + existing keys. +\end{excdesc} + +\begin{excdesc}{KeyboardInterrupt} + Raised when the user hits the interrupt key (normally + \kbd{Control-C} or +\key{DEL}). During execution, a check for interrupts is made regularly. +% XXXJH xrefs here + Interrupts typed when a built-in function \code{input()} or + \code{raw_input()}) is waiting for input also raise this exception. No + associated value. +\end{excdesc} + +\begin{excdesc}{MemoryError} + Raised when an operation runs out of memory but the situation may + still be rescued (by deleting some objects). The associated value is + a string indicating what kind of (internal) operation ran out of memory. + Note that because of the underlying memory management architecture + (\C{}'s \code{malloc()} function), the interpreter may not always be able + to completely recover from this situation; it nevertheless raises an + exception so that a stack traceback can be printed, in case a run-away + program was the cause. +\end{excdesc} + +\begin{excdesc}{NameError} + Raised when a local or global name is not found. This applies only + to unqualified names. The associated value is the name that could + not be found. +\end{excdesc} + +\begin{excdesc}{OverflowError} +% XXXJH reference to long's and/or int's? + Raised when the result of an arithmetic operation is too large to be + represented. This cannot occur for long integers (which would rather + raise \code{MemoryError} than give up). Because of the lack of + standardization of floating point exception handling in \C{}, most + floating point operations also aren't checked. For plain integers, + all operations that can overflow are checked except left shift, where + typical applications prefer to drop bits than raise an exception. +\end{excdesc} + +\begin{excdesc}{RuntimeError} + Raised when an error is detected that doesn't fall in any of the + other categories. The associated value is a string indicating what + precisely went wrong. (This exception is a relic from a previous + version of the interpreter; it is not used any more except by some + extension modules that haven't been converted to define their own + exceptions yet.) +\end{excdesc} + +\begin{excdesc}{SyntaxError} +% XXXJH xref to these functions? + Raised when the parser encounters a syntax error. This may occur in + an \code{import} statement, in an \code{exec} statement, in a call + to the built-in function \code{eval()} or \code{input()}, or + when reading the initial script or standard input (also + interactively). +\end{excdesc} + +\begin{excdesc}{SystemError} + Raised when the interpreter finds an internal error, but the + situation does not look so serious to cause it to abandon all hope. + The associated value is a string indicating what went wrong (in + low-level terms). + + You should report this to the author or maintainer of your Python + interpreter. Be sure to report the version string of the Python + interpreter (\code{sys.version}; it is also printed at the start of an + interactive Python session), the exact error message (the exception's + associated value) and if possible the source of the program that + triggered the error. +\end{excdesc} + +\begin{excdesc}{SystemExit} +% XXXJH xref to module sys? + This exception is raised by the \code{sys.exit()} function. When it + is not handled, the Python interpreter exits; no stack traceback is + printed. If the associated value is a plain integer, it specifies the + system exit status (passed to \C{}'s \code{exit()} function); if it is + \code{None}, the exit status is zero; if it has another type (such as + a string), the object's value is printed and the exit status is one. + + A call to \code{sys.exit} is translated into an exception so that + clean-up handlers (\code{finally} clauses of \code{try} statements) + can be executed, and so that a debugger can execute a script without + running the risk of losing control. The \code{posix._exit()} function + can be used if it is absolutely positively necessary to exit + immediately (e.g., after a \code{fork()} in the child process). +\end{excdesc} + +\begin{excdesc}{TypeError} + Raised when a built-in operation or function is applied to an object + of inappropriate type. The associated value is a string giving + details about the type mismatch. +\end{excdesc} + +\begin{excdesc}{ValueError} + Raised when a built-in operation or function receives an argument + that has the right type but an inappropriate value, and the + situation is not described by a more precise exception such as + \code{IndexError}. +\end{excdesc} + +\begin{excdesc}{ZeroDivisionError} + Raised when the second argument of a division or modulo operation is + zero. The associated value is a string indicating the type of the + operands and the operation. +\end{excdesc} |