6. Built-in Exceptions¶
Exceptions should be class objects. The exceptions are defined in the module
exceptions. This module never needs to be imported explicitly: the
exceptions are provided in the built-in namespace as well as the
exceptions module.
For class exceptions, in a try statement with an except
clause that mentions a particular class, that clause also handles any exception
classes derived from that class (but not exception classes from which it is
derived). Two exception classes that are not related via subclassing are never
equivalent, even if they have the same name.
The built-in exceptions listed below 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). The associated value is the second argument to the
raise statement. If the exception class is derived from the standard
root class BaseException, the associated value is present as the
exception instance’s args attribute.
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.
The built-in exception classes can be sub-classed to define new exceptions;
programmers are encouraged to at least derive new exceptions from the
Exception class and not BaseException. More information on
defining exceptions is available in the Python Tutorial under
User-defined Exceptions.
The following exceptions are only used as base classes for other exceptions.
-
exception
BaseException¶ The base class for all built-in exceptions. It is not meant to be directly inherited by user-defined classes (for that use
Exception). Ifstr()orunicode()is called on an instance of this class, the representation of the argument(s) to the instance are returned or the empty string when there were no arguments. All arguments are stored inargsas a tuple.New in version 2.5:
New in version 2.5.
-
exception
Exception¶ All built-in, non-system-exiting exceptions are derived from this class. All user-defined exceptions should also be derived from this class.
Changed in version 2.5:
Changed in version 2.5: Changed to inherit from
BaseException.