[Python-checkins] cpython (3.2): Issue #14167: Document return statement in finally blocks.

andrew.svetlov python-checkins at python.org
Tue Aug 14 14:45:33 CEST 2012


http://hg.python.org/cpython/rev/e0e8e70e4035
changeset:   78564:e0e8e70e4035
branch:      3.2
parent:      78562:20f8a2455ffb
user:        Andrew Svetlov <andrew.svetlov at gmail.com>
date:        Tue Aug 14 15:38:15 2012 +0300
summary:
  Issue #14167: Document return statement in finally blocks.

Patch by Yury Selivanov.

files:
  Doc/reference/compound_stmts.rst |  23 ++++++++++++++-----
  1 files changed, 17 insertions(+), 6 deletions(-)


diff --git a/Doc/reference/compound_stmts.rst b/Doc/reference/compound_stmts.rst
--- a/Doc/reference/compound_stmts.rst
+++ b/Doc/reference/compound_stmts.rst
@@ -307,12 +307,23 @@
 :keyword:`try` clause is executed, including any :keyword:`except` and
 :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
-is executed.  If there is a saved exception, it is re-raised at the end of the
-:keyword:`finally` clause. If the :keyword:`finally` clause raises another
-exception or executes a :keyword:`return` or :keyword:`break` statement, the
-saved exception is set as the context of the new exception.  The exception
-information is not available to the program during execution of the
-:keyword:`finally` clause.
+is executed.  If there is a saved exception or :keyword:`break` statement,
+it is re-raised at the end of the :keyword:`finally` clause. If the
+:keyword:`finally` clause raises another exception the saved exception
+is set as the context of the new 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::
    statement: return

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list