summaryrefslogtreecommitdiff
path: root/coverage/execfile.py
diff options
context:
space:
mode:
authorNed Batchelder <nedbat@gmail.com>2016-12-26 07:14:26 -0500
committerNed Batchelder <nedbat@gmail.com>2016-12-26 07:14:26 -0500
commit481c27ae93b627e3f7704bd2ba652c60f61fabdd (patch)
tree945a4ac75060cc873464cbedf3ec6abcbf79f3bc /coverage/execfile.py
parent8c1d86ef3953af44b410e45f1640693ff15b7a07 (diff)
parentf807c4271e59a8016f15c8ba4763b0c2d92645a9 (diff)
downloadpython-coveragepy-git-481c27ae93b627e3f7704bd2ba652c60f61fabdd.tar.gz
Merged in andrewhoos/coverage.py (pull request #93)
Explicitely call sys.excepthook
Diffstat (limited to 'coverage/execfile.py')
-rw-r--r--coverage/execfile.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/coverage/execfile.py b/coverage/execfile.py
index 58b05402..f598c60b 100644
--- a/coverage/execfile.py
+++ b/coverage/execfile.py
@@ -199,7 +199,17 @@ def run_python_file(filename, args, package=None, modulename=None, path0=None):
# it somehow? https://bitbucket.org/pypy/pypy/issue/1903
getattr(err, '__context__', None)
- raise ExceptionDuringRun(typ, err, tb.tb_next)
+ # call a custom user excepthook if it is provided
+ try:
+ sys.excepthook(typ, err, tb.tb_next)
+ except SystemExit:
+ raise
+ except:
+ typ, err, tb = sys.exc_info()
+ raise ExceptionDuringRun(typ, err, tb.tb_next)
+ else:
+ sys.exit(1)
+
finally:
# Restore the old __main__, argv, and path.
sys.modules['__main__'] = old_main_mod