diff options
author | Guido van Rossum <guido@python.org> | 1998-08-25 14:45:41 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1998-08-25 14:45:41 (GMT) |
commit | f5a80a4a8806fc293ac8de95ea6d304347af784e (patch) | |
tree | 197cda7a164fdfd5ee896519e9c877a4e08e2967 /Doc/ref | |
parent | dbf7956e522164518179be6682c74205fda2c7fe (diff) | |
download | cpython-f5a80a4a8806fc293ac8de95ea6d304347af784e.zip cpython-f5a80a4a8806fc293ac8de95ea6d304347af784e.tar.gz cpython-f5a80a4a8806fc293ac8de95ea6d304347af784e.tar.bz2 |
Describe what happens when ``raise C, x'' is called where C is a class
and x is not an instance of C (nor of a class derived of C).
Diffstat (limited to 'Doc/ref')
-rw-r--r-- | Doc/ref/ref6.tex | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/Doc/ref/ref6.tex b/Doc/ref/ref6.tex index b810056..1748202 100644 --- a/Doc/ref/ref6.tex +++ b/Doc/ref/ref6.tex @@ -366,19 +366,25 @@ expression that was raised in the current scope. Otherwose, \keyword{raise} evaluates its first expression, which must yield a string, class, or instance object. If there is a second expression, this is evaluated, else \code{None} is substituted. If the first -expression is a class object, then the second expression must be an -instance of that class or one of its derivatives. If the first +expression is a class object, then the second expression may be an +instance of that class or one of its derivatives, and then that +instance is raised. If the second expression is not such an instance, +the given class is instantiated. The argument list for the +instantiation is determined as follows: if the second expression is a +tuple, it is used as the argument list; if it is \code{None}, the +argument list is empty; otherwise, the argument list consists of a +single argument which is the second expression. If the first expression is an instance object, the second expression must be \code{None}. \index{exception} \indexii{raising}{exception} -If the first object is a class or string, it then raises the exception +If the first object is a string, it then raises the exception identified by the first object, with the second one (or \code{None}) -as its parameter. If the first object is an instance, it raises the -exception identified by the class of the object, with the instance as -its parameter (and there should be no second object, or the second -object should be \code{None}). +as its parameter. If the first object is a class or instance, +it raises the exception identified by the class of the instance +determined in the previous step, with the instance as +its parameter. If a third object is present, and it is not \code{None}, it should be a traceback object (see section \ref{traceback}), and it is |