From b5acf8c95b4c1060a9bc646dcb9cf52137c8df92 Mon Sep 17 00:00:00 2001 From: Andrew Hoos Date: Tue, 29 Nov 2016 17:52:50 -0800 Subject: Update code to better handle calling sys.excepthook when it throws --- coverage/execfile.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'coverage/execfile.py') diff --git a/coverage/execfile.py b/coverage/execfile.py index 8ff38776..d1aa2529 100644 --- a/coverage/execfile.py +++ b/coverage/execfile.py @@ -6,6 +6,7 @@ import marshal import os import sys +import traceback import types from coverage.backward import BUILTINS @@ -195,7 +196,13 @@ def run_python_file(filename, args, package=None, modulename=None, path0=None): # call a custom user excepthook if it is provided if sys.excepthook is not sys.__excepthook__: - sys.excepthook(typ, err, tb.tb_next) + try: + sys.excepthook(typ, err, tb.tb_next) + except SystemExit: + raise + except: + typ, err, tb = sys.exc_info() + traceback.print_exception(typ, err, tb.tb_next) raise ExceptionDuringRun(typ, err, tb.tb_next) finally: -- cgit v1.2.1