浏览代码

Print tracebacks for errors encountered during evaluation

Ryan C. Thompson 7 年之前
父节点
当前提交
1f42311c5e
共有 1 个文件被更改,包括 4 次插入2 次删除
  1. 4 2
      roll.py

+ 4 - 2
roll.py

@@ -6,6 +6,7 @@ import re
 import sys
 import sys
 import readline
 import readline
 import operator
 import operator
+import traceback
 from numbers import Number
 from numbers import Number
 from random import SystemRandom
 from random import SystemRandom
 from pyparsing import ParserElement, Token, Regex, oneOf, Optional, Group, Combine, Literal, CaselessLiteral, ZeroOrMore, StringStart, StringEnd, opAssoc, infixNotation, ParseException, Empty, pyparsing_common, ParseResults, White, Suppress
 from pyparsing import ParserElement, Token, Regex, oneOf, Optional, Group, Combine, Literal, CaselessLiteral, ZeroOrMore, StringStart, StringEnd, opAssoc, infixNotation, ParseException, Empty, pyparsing_common, ParseResults, White, Suppress
@@ -837,6 +838,7 @@ if __name__ == '__main__':
                 logger.info('Quitting.')
                 logger.info('Quitting.')
                 break
                 break
             except Exception as exc:
             except Exception as exc:
-                logger.error('Error while evaluating {expr!r}: {ex!r}'.format(
-                    expr=expr_string, ex=exc,
+                logger.error('Error while evaluating {expr!r}:\n{tb}'.format(
+                    expr=expr_string,
+                    tb=traceback.format_exc(),
                 ))
                 ))