[Python-Dev] Handle errors in cleanup code
Stefan Ring
stefanrin at gmail.com
Mon Jun 12 09:29:00 EDT 2017
> Yury in the comment for PR 2108 [1] suggested more complicated code:
>
> do_something()
> try:
> do_something_other()
> except BaseException as ex:
> try:
> undo_something()
> finally:
> raise ex
And this is still bad, because it loses the back trace. The way we do it is:
do_something()
try:
do_something_other()
except BaseException as ex:
tb = sys.exc_info()[2]
try:
undo_something()
finally:
raise ex, None, tb
More information about the Python-Dev
mailing list