[python] using try: finally: except

Tim Peters tim.peters at gmail.com
Fri Jun 25 14:08:19 EDT 2004


[Tim Peters]
>> It's more that Guido deliberately separated them.  Before Python
>> 0.9.6, you could attach both 'except' and 'finally' clauses to the
>> same 'try' structure (see Misc/HISTORY in a Python source
>> distribution).  I don't remember the semantics, and that was indeed
>> the problem:  nobody could remember, and half the time guessed wrong.

[Peter Hansen]
> I'm curious: was it that the order of execution was fixed, regardless
> of the order of the 'finally' and 'except' in the source, or was
> it still confusing even though the order of execution changed
> logically with the order of the statements in the source?

If present, a 'finally' clause had to be the last clause in a
try/except/finally structure.  That was enforced by the syntax.  The
most common confusion was over whether the code in the 'finally'
clause would execute if an exception was raised during execution of an
'except' clause.  That code isn't in the 'try' block, so why should
'finally' apply to it?  For that matter, why shouldn't it?  That's why
nobody could remember (and I in fact don't remember what happened
then).




More information about the Python-list mailing list