The raise Statement
You can use the
raise statement to raise an exception explicitly.
raise is a simple statement with the following
syntax:
raise [expression1[,expression2]]
Only an exception handler (or a function that a handler calls,
directly or indirectly) can use raise without any
expressions. A plain raise statement reraises the
same exception object that the handler received. The handler
terminates, and the exception propagation mechanism keeps searching
for other applicable handlers. Using a raise
without expressions is useful when a handler discovers that it is
unable to handle an exception it receives, so the exception should
keep propagating.
When only expression1 is present, it can
be an instance object or a class object. In this case, if
expression1 is an instance object, Python
raises that instance. When expression1 is
a class object, raise instantiates the class
without arguments and raises the resulting instance. When both
expressions are present, expression1 must
be a class object. raise instantiates the class,
with expression2 as the argument (or
multiple arguments if expression2 is a
tuple), and raises the resulting instance.
Here’s an example of a typical use of the
raise statement:
def crossProduct(seq1, seq2):
if not seq1 or not seq2:
raise ValueError, "Sequence arguments must be non-empty"
return [ (x1, x2) for x1 in seq1 for x2 in seq2 ]The crossProduct function returns a list of all pairs with one item from each of its sequence arguments, but first it tests ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access