[Python-Dev] more pyref: continue in finally statements (original) (raw)
"Martin v. Löwis" martin at v.loewis.de
Mon May 1 21:09:36 CEST 2006
- Previous message: [Python-Dev] more pyref: continue in finally statements
- Next message: [Python-Dev] more pyref: continue in finally statements
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Fredrik Lundh wrote:
the language reference says:
continue may only occur syntactically nested in a for or while loop, but not nested in a function or class definition or finally statement within that loop. /.../ It may occur within an except or else clause. The restriction on occurring in the try clause is implementor's laziness and will eventually be lifted. and it looks like the new compiler still has the same issue: $ python test.py File "test.py", line 5: continue SyntaxError: 'continue' not supported inside 'finally' clause how hard would it be to fix this ? (shouldn't the "try clause" in the note read "finally clause", btw? "continue" within the "try" suite seem to work just fine...)
For the latter: the documentation apparently wasn't fully updated in r19260: it only changed ref7.tex, but not ref6.tex. IOW, it really means to say "in the try clause", and it is out-of-date in saying so.
As for "continue in the 'finally' clause: What would that mean? Given
def f(): raise Exception
while 1: try: f() finally: g() continue
then what should be the meaning of "continue" here? The finally block eventually needs to re-raise the exception. When should that happen?
So I would say: It's very easy to fix, just change the message to
SyntaxError: 'continue' not allowed inside 'finally' clause
:-)
Regards, Martin
- Previous message: [Python-Dev] more pyref: continue in finally statements
- Next message: [Python-Dev] more pyref: continue in finally statements
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]