From f158d86074465914c8de22e357c17090eb959da4 Mon Sep 17 00:00:00 2001 From: Andrew Svetlov Date: Tue, 14 Aug 2012 15:38:15 +0300 Subject: Issue #14167: Document return statement in finally blocks. Patch by Yury Selivanov. --- Doc/reference/compound_stmts.rst | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/Doc/reference/compound_stmts.rst b/Doc/reference/compound_stmts.rst index 4ce7324..687ba3e 100644 --- a/Doc/reference/compound_stmts.rst +++ b/Doc/reference/compound_stmts.rst @@ -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:`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 -- cgit v0.12 70da8c339243339'>commitdiffstats
BranchCommit messageAuthorAge
2.7[2.7] bpo-31675: Fix memory leaks in Tkinter's methods splitlist() and split(...Serhiy Storchaka8 years
3.3post 3.3.7, should there be anyNed Deily8 years
3.4Remove retired and security branches from active docs (#3883)Ned Deily8 years
3.5Remove retired and security branches from active docs (#3882)Ned Deily8 years
3.6[3.6] bpo-31178: Mock os.waitpid() in test_subprocess (GH-3896) (#3897)Miss Islington (bot)8 years
benjamin-clangcloses bpo-31696: don't mention GCC in sys.version when building with clangBenjamin Peterson8 years
benjamin-iteration-torturebpo-31530: stop crashes when iterating over a file on multiple threadsBenjamin Peterson8 years
buildbot-custombpo-5885: add Misc/NEWS entryIgor Galić8 years
masterbpo-38614: Use support timeout constants (GH-17572)Victor Stinner6 years