diff options
author | Ned Batchelder <nedbat@gmail.com> | 2016-12-26 07:14:26 -0500 |
---|---|---|
committer | Ned Batchelder <nedbat@gmail.com> | 2016-12-26 07:14:26 -0500 |
commit | 680d6642f1b05a3011be30b490ff6fa0c6875f09 (patch) | |
tree | c376904658a5164b43295d715e9dddd387754568 /coverage/execfile.py | |
parent | c66a529060492ceb587288ccfe5483dd172e55ff (diff) | |
parent | 8ccdedf3ec46cb51130af886be36b85b9e3015b7 (diff) | |
download | python-coveragepy-680d6642f1b05a3011be30b490ff6fa0c6875f09.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.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/coverage/execfile.py b/coverage/execfile.py index 58b0540..f598c60 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 |