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

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to