diff options
author | Kristján Valur Jónsson <kristjan@atmoselect.com> | 2016-01-15 13:31:20 +0000 |
---|---|---|
committer | Kristján Valur Jónsson <kristjan@atmoselect.com> | 2016-01-15 13:31:20 +0000 |
commit | 12381bd661a1e9a3772f5acf54d3afe2f285a795 (patch) | |
tree | 9ac646740916ab29f990d29023ca9cc4cbc4b263 /six.py | |
parent | 78833c7d06cc78585e03c97d49135615115bbe6e (diff) | |
download | six-git-12381bd661a1e9a3772f5acf54d3afe2f285a795.tar.gz |
Delete exception variables in frames that raise exceptions.
Diffstat (limited to 'six.py')
-rw-r--r-- | six.py | 32 |
1 files changed, 22 insertions, 10 deletions
@@ -679,11 +679,14 @@ if PY3: exec_ = getattr(moves.builtins, "exec") def reraise(tp, value, tb=None): - if value is None: - value = tp() - if value.__traceback__ is not tb: - raise value.with_traceback(tb) - raise value + try: + if value is None: + value = tp() + if value.__traceback__ is not tb: + raise value.with_traceback(tb) + raise value + finally: + del value, tb else: def exec_(_code_, _globs_=None, _locs_=None): @@ -699,19 +702,28 @@ else: exec("""exec _code_ in _globs_, _locs_""") exec_("""def reraise(tp, value, tb=None): - raise tp, value, tb + try: + raise tp, value, tb + finally: + del tb """) if sys.version_info[:2] == (3, 2): exec_("""def raise_from(value, from_value): - if from_value is None: - raise value - raise value from from_value + try: + if from_value is None: + raise value + raise value from from_value + finally: + del value """) elif sys.version_info[:2] > (3, 2): exec_("""def raise_from(value, from_value): - raise value from from_value + try: + raise value from from_value + finally: + del value """) else: def raise_from(value, from_value): |