GNU Info

Info Node: (python2.1-ref.info)Exceptions

(python2.1-ref.info)Exceptions


Prev: Code blocks Up: Execution model
Enter node , (file) or (file)node

Exceptions
==========

Exceptions are a means of breaking out of the normal flow of control of
a code block in order to handle errors or other exceptional conditions.
An exception is _raised_  at the point where the error is detected; it
may be _handled_  by the surrounding code block or by any code block
that directly or indirectly invoked the code block where the error
occurred.

The Python interpreter raises an exception when it detects a run-time
error (such as division by zero).  A Python program can also explicitly
raise an exception with the `raise' statement.  Exception handlers are
specified with the `try' ... `except' statement.  The `try' ...
`finally' statement specifies cleanup code which does not handle the
exception, but is executed whether an exception occurred or not in the
preceding code.

Python uses the "termination" model of error handling: an exception
handler can find out what happened and continue execution at an outer
level, but it cannot repair the cause of the error and retry the
failing operation (except by re-entering the offending piece of code
from the top).

When an exception is not handled at all, the interpreter terminates
execution of the program, or returns to its interactive main loop.  In
either case, it prints a stack backtrace, except when the exception is
`SystemExit' .

Exceptions are identified by string objects or class instances.
Selection of a matching except clause is based on object identity
(i.e., two different string objects with the same value represent
different exceptions!)  For string exceptions, the `except' clause must
reference the same string object.  For class exceptions, the `except'
clause must reference the same class or a base class of it.

When an exception is raised, an object (maybe `None') is passed as the
exception's "parameter" or "value"; this object does not affect the
selection of an exception handler, but is passed to the selected
exception handler as additional information.  For class exceptions,
this object must be an instance of the exception class being raised.

See also the description of the `try' statement in section Note: try
statement and `raise' statement in section Note: raise statement.


automatically generated by info2www version 1.2.2.9