This section describes the exceptions that Python might raise during a program’s execution. Beginning with Python 1.5, all built-in exceptions are class objects (prior to 1.5 they were strings). Built-in exceptions are provided in the built-in scope namespace. Many built-in exceptions have associated state information that provides exception details.
The following exceptions are used only as superclasses for other exceptions.
The root superclass for all built-in exceptions. It is
not meant to be directly inherited by user-defined classes; use
Exception for this role
str() is called
on an instance of this class, the representation of the
constructor argument(s) passed when creating the instance are
returned (or the empty string if there were no such arguments).
These instance constructor arguments are stored and made
available in the instance’s
args attribute as a tuple. Subclasses
inherit this protocol.
The root superclass for all built-in and
non-system-exiting exceptions. This is a direct subclass of
User-defined exceptions should inherit (be derived) from this class. This derivation is required for user-defined exceptions in Python 3.0; Python 2.6 requires this of new-style classes, but also allows standalone exception classes.
try statements that
catch this exception will catch all but system exit events,
because this class is superclass to all exceptions but