[Python-Dev] Handle errors in cleanup code (original) (raw)

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:

dosomething() try: dosomethingother() except BaseException as ex: try: undosomething() 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