STINNER Victor added the comment:
ExceptionChainingTest uses a function to raise an arbitrary exception. Problem:
the function and its parameter becomes part of the exception traceback.
Shortly, the exception links indirectly to itself in a nice reference cycle...
Example:
---
import traceback
class Err(Exception):
def __del__(self):
print("del")
def raise_exc(exc):
raise exc
e = Err()
try:
raise_exc(e)
except Exception as e:
t = e.__traceback__
#traceback.clear_frames(t)
e = None
print("exit")
---
Uncommand the call the clear_frames() to see the exception deleted before the
exit.
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue22166>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com