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.
raw_input()) hits an end-of-file condition (EOF) without reading any data. (N.B.: the
readline()methods of file objects return an empty string when they hit EOF.) No associated value.
open()function or a method of a file object) fails for an I/O-related reason, e.g., `file not found', `disk full'.
importstatement fails to find the module definition or when a
from ... importfails to find a name that is to be imported.
raw_input()) is waiting for input also raise this exception. No associated value.
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.
MemoryErrorthan 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.
importstatement, in an
execstatement, in a call to the built-in function
input(), or when reading the initial script or standard input (also interactively).
You should report this to the author or maintainer of your Python
interpreter. Be sure to report the version string of the Python
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.
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
exit()function); if it is
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
sys.exit is translated into an exception so that
clean-up handlers (
finally clauses of
can be executed, and so that a debugger can execute a script without
running the risk of losing control. The
can be used if it is absolutely positively necessary to exit
immediately (e.g., after a
fork() in the child process).