summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--yaksh/code_evaluator.py9
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)