c.l.p-
I am having trouble understanding how one is supposed to correctly utilize try:...except:...finally: in real code. If I have a block of code like:
def foo():
try:
... some code that can raise an exception ... finally:
... do some cleanup ...
return somethingIf any exception occurs in the code inside the try:...finally:, it will fail silently, which is a bad thing.
So, the obvious thing to do (I think) is:
def foo():
try:
try:
... some code that can raise an exception ...
except someerror:
... handle the error...
finally:
... do some cleanup ...
return somethingBut, now the finally doesn't really serve any purpose, if all the exceptions are handled by except:, finally will never be called as a result of an exception, only as the last statements of the function.
So, the next step is to do this?
def foo():
try:
try:
... some code that can raise an exception ...
except someerror:
... handle the error...
raise someerror
finally:
... do some cleanup ...
return somethingWhich, I guess will work, but it feels very awkward. Is this the preferred/"correct" way to handle this? Is there a more elegant solution?
Also, why is this construct not possible?:
try:
... some code that can raise an exception ...
except someerror:
... handle the error...
finally:
... do cleanup, etc. ...
Thanks,
Don
-- http://mail.python.org/mailman/listinfo/python-list
