summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1996-08-19 23:00:03 (GMT)
committerGuido van Rossum <guido@python.org>1996-08-19 23:00:03 (GMT)
commit8823972cea8d955fb8a5511a30eb7db15f6fc467 (patch)
treea312c50fc37d40e19bcb5cce8b04fd9b7b1191bd /Doc
parent305ed11a74bbdf1de279232c4c64a65ec3e0f92b (diff)
downloadcpython-8823972cea8d955fb8a5511a30eb7db15f6fc467.zip
cpython-8823972cea8d955fb8a5511a30eb7db15f6fc467.tar.gz
cpython-8823972cea8d955fb8a5511a30eb7db15f6fc467.tar.bz2
Documented class exceptions.
Diffstat (limited to 'Doc')
-rw-r--r--Doc/ref/ref4.tex26
-rw-r--r--Doc/ref4.tex26
2 files changed, 46 insertions, 6 deletions
diff --git a/Doc/ref/ref4.tex b/Doc/ref/ref4.tex
index ed621c4..4b4d522 100644
--- a/Doc/ref/ref4.tex
+++ b/Doc/ref/ref4.tex
@@ -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.
diff --git a/Doc/ref4.tex b/Doc/ref4.tex
index ed621c4..4b4d522 100644
--- a/Doc/ref4.tex
+++ b/Doc/ref4.tex
@@ -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.