GNU Info

Info Node: (python2.1-ref.info)raise statement

(python2.1-ref.info)raise statement


Next: break statement Prev: return statement Up: Simple statements
Enter node , (file) or (file)node

The `raise' statement
=====================

     raise_stmt:     "raise" [expression ["," expression ["," expression]]]

If no expressions are present, `raise' re-raises the last expression
that was raised in the current scope.

Otherwise, `raise' evaluates its first expression, which must yield a
string, class, or instance object.  If there is a second expression,
this is evaluated, else `None' is substituted.  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 `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 `None'.

If the first object is a string, it then raises the exception
identified by the first object, with the second one (or `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 `None', it should be a
traceback object (see section Note: standard type hierarchy), and it
is substituted instead of the current location as the place where the
exception occurred.  This is useful to re-raise an exception
transparently in an except clause.


automatically generated by info2www version 1.2.2.9