Message226252
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. |
|
Date |
User |
Action |
Args |
2014-09-02 00:19:18 | vstinner | set | recipients:
+ vstinner, brett.cannon, ncoghlan, zach.ware |
2014-09-02 00:19:18 | vstinner | set | messageid: <1409617158.32.0.825799298032.issue22166@psf.upfronthosting.co.za> |
2014-09-02 00:19:18 | vstinner | link | issue22166 messages |
2014-09-02 00:19:17 | vstinner | create | |
|