fix evaluator.py for various exceptions by ast
the python `ast` package throws both `SyntaxError` and `ValueError` during evaluating an invalid dict object, so exception handling needs to catch all possible kinds of exceptions.