diff options
-rw-r--r-- | yaksh/code_evaluator.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/yaksh/code_evaluator.py b/yaksh/code_evaluator.py index 2fb429f..d0cac62 100644 --- a/yaksh/code_evaluator.py +++ b/yaksh/code_evaluator.py @@ -108,9 +108,14 @@ class CodeEvaluator(object): except TimeoutException: err = self.timeout_msg + except OSError: + msg = traceback.format_exc(limit=0) + err = "Error: {0}".format(msg) except Exception: - err = "Error: {0}".format(traceback.format_exc(limit=0)) - + exc_type, exc_value, exc_tb = sys.exc_info() + tb_list = traceback.format_exception(exc_type, exc_value, exc_tb) + del tb_list[1:3] + err = "Error: {0}".format("".join(tb_list)) finally: # Set back any original signal handler. set_original_signal_handler(prev_handler) |