Author vstinner
Recipients brett.cannon, ncoghlan, vstinner, zach.ware
Date 2014-09-02.00:19:17
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1409617158.32.0.825799298032.issue22166@psf.upfronthosting.co.za>
In-reply-to
Content
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.
History
Date User Action Args
2014-09-02 00:19:18vstinnersetrecipients: + vstinner, brett.cannon, ncoghlan, zach.ware
2014-09-02 00:19:18vstinnersetmessageid: <1409617158.32.0.825799298032.issue22166@psf.upfronthosting.co.za>
2014-09-02 00:19:18vstinnerlinkissue22166 messages
2014-09-02 00:19:17vstinnercreate