diff options
author | Reinier Heeres <reinier@heeres.eu> | 2007-09-16 21:25:59 (GMT) |
---|---|---|
committer | Reinier Heeres <reinier@heeres.eu> | 2007-09-16 21:25:59 (GMT) |
commit | dbf0042e81535529026aa94d0fe158809a3c054c (patch) | |
tree | 6dfa28517ab99fec38bc90441ddb68c1110cc04f /eqnparser.py | |
parent | d3a7798fbd50c43cc70787483be0cdde42876e13 (diff) |
Function exceptions get caught.
Diffstat (limited to 'eqnparser.py')
-rw-r--r-- | eqnparser.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/eqnparser.py b/eqnparser.py index 363269a..e15ffa9 100644 --- a/eqnparser.py +++ b/eqnparser.py @@ -347,7 +347,14 @@ class EqnParser: self.ps.set_error(ParserState.PARSE_ERROR, msg='Unable to parse argument %d: \'%s\'' % (i, args[i])) return None - res = f(pargs) + try: + res = f(pargs) + +# Maybe we should map exceptions to more obvious error messages + except Exception, inst: + res = None + self.ps.set_error(ParserState.PARSE_ERROR, msg="Function error: %s" % (str(inst))) + _logger.debug('Function \'%s\' returned %s', func, self.ml.format_number(res)) return res |