For testing coverage.py, I wrote a program to generate randomly-structured Python functions. When compiling the results, I got a message I'd never seen before:
SyntaxError: 'continue' not supported inside 'finally' clause I guess this makes sense, when cleaning up from an exception, continuing the loop seems an odd thing to do. But 'break' is allowed in 'finally' clauses! I tried this: # Huh? This prints "here", and no exception is raised. for i in range(1): try: 1/0 finally: # If you change this to "continue", you get: # 'continue' not supported inside 'finally' clause break print "here" The finally is perfectly willing to have a 'break', but it's a syntax error to have 'continue'? Why? I don't see a difference between the two when it comes to cleaning up exceptions. There are other things you can do in a finally clause that will prevent the exception from being raised, like 'return', and 'break' works just fine. So why treat 'continue' specially? --Ned. -- https://mail.python.org/mailman/listinfo/python-list