[python] using try: finally: except

Antoon Pardon apardon at forel.vub.ac.be
Mon Jun 28 08:59:30 EDT 2004


Op 2004-06-25, Tim Peters schreef <tim.peters at gmail.com>:
> [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?

Well personnaly I wouldn't find it that hard to aswer this.

The finally clause is to finalise code in the try block.
That an exception occured in an except clause doesn't change
that.  

-- 
Antoon Pardon



More information about the Python-list mailing list