Documented class exceptions.

This commit is contained in:
Guido van Rossum 1996-08-19 23:00:03 +00:00
parent 305ed11a74
commit 8823972cea
2 changed files with 46 additions and 6 deletions

View File

@ -169,13 +169,33 @@ 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.
Exceptions are identified by string objects. Two different string
objects with the same value identify different exceptions.
Exceptions are identified by string objects or class instances. Two
different string objects with the same value identify different
exceptions. An exception can be raised with a class instance. Such
exceptions are caught by specifying an except clause that has the
class name (or a base class) as the condition.
When an exception is raised, an object (maybe \verb@None@) is passed
as the exception's ``parameter''; this object does not affect the
selection of an exception handler, but is passed to the selected
exception handler as additional information.
exception handler as additional information. For exceptions raised
with a class instance, the instance is passed as the ``parameter''.
For example:
\begin{verbatim}
>>> class Error:
... def __init__(self, msg): self.msg = msg
...
>>> class SpecificError(Error): pass
...
>>> try:
... raise SpecificError('broken')
... except Error, obj:
... print obj.msg
...
broken
\end{verbatim}
See also the description of the \verb@try@ and \verb@raise@
statements.

View File

@ -169,13 +169,33 @@ 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.
Exceptions are identified by string objects. Two different string
objects with the same value identify different exceptions.
Exceptions are identified by string objects or class instances. Two
different string objects with the same value identify different
exceptions. An exception can be raised with a class instance. Such
exceptions are caught by specifying an except clause that has the
class name (or a base class) as the condition.
When an exception is raised, an object (maybe \verb@None@) is passed
as the exception's ``parameter''; this object does not affect the
selection of an exception handler, but is passed to the selected
exception handler as additional information.
exception handler as additional information. For exceptions raised
with a class instance, the instance is passed as the ``parameter''.
For example:
\begin{verbatim}
>>> class Error:
... def __init__(self, msg): self.msg = msg
...
>>> class SpecificError(Error): pass
...
>>> try:
... raise SpecificError('broken')
... except Error, obj:
... print obj.msg
...
broken
\end{verbatim}
See also the description of the \verb@try@ and \verb@raise@
statements.