Issue #14167: Document return statement in finally blocks.
Patch by Yury Selivanov.
This commit is contained in:
parent
e88a2445bc
commit
f158d86074
@ -307,12 +307,23 @@ If :keyword:`finally` is present, it specifies a 'cleanup' handler. The
|
|||||||
:keyword:`try` clause is executed, including any :keyword:`except` and
|
:keyword:`try` clause is executed, including any :keyword:`except` and
|
||||||
:keyword:`else` clauses. If an exception occurs in any of the clauses and is
|
:keyword:`else` clauses. If an exception occurs in any of the clauses and is
|
||||||
not handled, the exception is temporarily saved. The :keyword:`finally` clause
|
not handled, the exception is temporarily saved. The :keyword:`finally` clause
|
||||||
is executed. If there is a saved exception, it is re-raised at the end of the
|
is executed. If there is a saved exception or :keyword:`break` statement,
|
||||||
:keyword:`finally` clause. If the :keyword:`finally` clause raises another
|
it is re-raised at the end of the :keyword:`finally` clause. If the
|
||||||
exception or executes a :keyword:`return` or :keyword:`break` statement, the
|
:keyword:`finally` clause raises another exception the saved exception
|
||||||
saved exception is set as the context of the new exception. The exception
|
is set as the context of the new exception; if the :keyword:`finally` clause
|
||||||
information is not available to the program during execution of the
|
executes a :keyword:`return` statement, the saved exception is discarded::
|
||||||
:keyword:`finally` clause.
|
|
||||||
|
def f():
|
||||||
|
try:
|
||||||
|
1/0
|
||||||
|
finally:
|
||||||
|
return 42
|
||||||
|
|
||||||
|
>>> f()
|
||||||
|
42
|
||||||
|
|
||||||
|
The exception information is not available to the program during execution of
|
||||||
|
the :keyword:`finally` clause.
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
statement: return
|
statement: return
|
||||||
|
Loading…
x
Reference in New Issue
Block a user