How to use "raise" keyword in Python [duplicate]
It has 2 purposes.
yentup has given the first one.
It's used for raising your own errors.
if something: raise Exception('My error!')
The second is to reraise the current exception in an exception handler, so that it can be handled further up the call stack.
try: generate_exception()except SomeException as e: if not can_handle(e): raise handle_exception(e)
raise
without any arguments is a special use of python syntax. It means get the exception and re-raise it. If this usage it could have been called reraise
.
raise
From The Python Language Reference:
If no expressions are present, raise re-raises the last exception that was active in the current scope.
If raise
is used alone without any argument is strictly used for reraise-ing. If done in the situation that is not at a reraise of another exception, the following error is shown:RuntimeError: No active exception to reraise