Browse Source

Print tracebacks for errors encountered during evaluation

Ryan C. Thompson 6 years ago
parent
commit
1f42311c5e
1 changed files with 4 additions and 2 deletions
  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(),
                 ))
                 ))