import contextlib import sys class MyException(Exception): def __del__(self): print("Delete MyException") @contextlib.contextmanager def leak(): try: yield except Exception: frame = sys._getframe() with leak(): raise MyException() print("Exit")