[Tutor] finally
bob gailer
bgailer at gmail.com
Thu Jun 24 04:59:00 CEST 2010
On 6/23/2010 7:36 PM, Christopher King wrote:
> In a try except clause, you can end with finally block. I know it
> runs after the try and except blocks regardless of the outcome, but
> why use it. Couldn't you just put the code after the try and except
> block without using a finally block. Does the finally command do
> something I don't know about. Does it make your program more
> understandable in some way?
Did you read the manual?
"If finally <#finally> is present, it specifies a 'cleanup' handler. The
try <#try> clause is executed, including any except <#except> and else
<#else> clauses. If an exception occurs in any of the clauses and is not
handled, the exception is temporarily saved. The finally <#finally>
clause is executed. If there is a saved exception, it is re-raised at
the end of the finally <#finally> clause. If the finally <#finally>
clause raises another exception or executes a return
<simple_stmts.html#return> or break <simple_stmts.html#break> statement,
the saved exception is lost. The exception information is not available
to the program during execution of the finally <#finally> clause.
"When a return <simple_stmts.html#return>, break
<simple_stmts.html#break> or continue <simple_stmts.html#continue>
statement is executed in the try <#try> suite of a try <#try>...finally
<#finally> statement, the finally <#finally> clause is also executed 'on
the way out.' A continue <simple_stmts.html#continue> statement is
illegal in the finally <#finally> clause. (The reason is a problem with
the current implementation --- this restriction may be lifted in the
future)."
--
Bob Gailer
919-636-4239
Chapel Hill NC
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20100623/1f98fdd4/attachment-0001.html>
More information about the Tutor
mailing list