Exception Objects
Exceptions are instances of
subclasses of the built-in Exception
class. For
backward compatibility, Python also lets you use strings, or
instances of any class, as exception objects, but such usage risks
future incompatibility and gives no benefits. An instance of any
subclass of Exception
has an attribute
args
, the tuple of arguments used to create the
instance. args
holds error-specific information,
usable for diagnostic or recovery
purposes.
The Hierarchy of Standard Exceptions
All exceptions that Python
itself raises are instances of subclasses of
Exception
. The inheritance structure of exception
classes is important, as it determines which
except
clauses handle which exceptions.
The SystemExit
class inherits directly from
Exception
. Instances of
SystemExit
are normally raised by the
exit
function in module sys
(covered in Chapter 8).
Other
standard exceptions derive from StandardError
, a
direct subclass of Exception
. Three subclasses of
StandardError
, like
StandardError
itself and
Exception
, are never instantiated directly. Their
purpose is to make it easier for you to specify
except
clauses that handle a broad range of
related errors. These subclasses are:
-
ArithmeticError
The base class for exceptions due to arithmetic errors (i.e.,
OverflowError
,ZeroDivisionError
,FloatingPointError
)-
LookupError
The base class for exceptions that a container raises when it receives an invalid key or index (i.e.,
IndexError
,KeyError
)-
EnvironmentError
The ...
Get Python in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.