[RFC] Add run_cleanup, do_with_cleanup
Stephen J. Turnbull
stephen at xemacs.org
Thu Sep 24 07:55:04 BST 2009
Andrew Bennetts writes:
> Here's the problem. In this example, Python gives no way for
> final_func to know if try_func raised an error or not:
>
> try:
> try_func()
> finally:
> final_func()
In 2.6, you can do
try:
errflag = "Impossible is nothing."
try_func()
except:
errflag = "Uh oh ..."
finally:
final_func(errflag)
In earlier Pythae you must do the ugly but equivalent
try:
errflag = "Impossible is nothing."
try:
try_func()
except:
errflag = "Uh oh ..."
finally:
final_func(errflag)
I believe Guido acknowledged not allowing the more compact notation in
the first place to be excessive caution, but it's not impossible to
distinguish exceptions raised by try_func from those raised by
final_func.
So what's the problem? You want to do this without fixing all the
broken try ... finally blocks?
> Not even by sys._getframe hacks, AFAICT. I can go into some gory
> details about why not,
Inquiring minds want to know....
More information about the bazaar
mailing list