Commit 6bcd00af authored by Andrew Svetlov's avatar Andrew Svetlov

Issue #14167: Document return statement in finally blocks.

Patch by Yury Selivanov.
parent faee75c3
...@@ -290,15 +290,28 @@ clause are not handled by the preceding :keyword:`except` clauses. ...@@ -290,15 +290,28 @@ clause are not handled by the preceding :keyword:`except` clauses.
.. index:: keyword: finally .. index:: keyword: finally
If :keyword:`finally` is present, it specifies a 'cleanup' handler. The If :keyword:`finally` is present, it specifies a 'cleanup' handler.
:keyword:`try` clause is executed, including any :keyword:`except` and The :keyword:`try` clause is executed, including any :keyword:`except`
:keyword:`else` clauses. If an exception occurs in any of the clauses and is and :keyword:`else` clauses. If an exception occurs in any of the
not handled, the exception is temporarily saved. The :keyword:`finally` clause clauses and is not handled, the exception is temporarily saved. The
is executed. If there is a saved exception, it is re-raised at the end of the :keyword:`finally` clause is executed. If there is a saved exception
:keyword:`finally` clause. If the :keyword:`finally` clause raises another or :keyword:`break` statement, it is re-raised at the end of the
exception or executes a :keyword:`return` or :keyword:`break` statement, the :keyword:`finally` clause. If the :keyword:`finally` clause raises
saved exception is lost. The exception information is not available to the another exception the saved exception is set as the context of the new
program during execution of the :keyword:`finally` clause. exception; if the :keyword:`finally` clause executes a
:keyword:`return` statement, the saved exception is discarded::
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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment