每当解析器找到它不理解的源代码时,就会发生SyntaxError。可以在导入模块,调用exec或调用时进行eval()
。异常的属性可用于准确地找到输入文本的哪一部分导致了异常。
我们重写给定的代码来处理异常并找到其类型
try: print eval('six times seven') except SyntaxError, err: print 'Syntax error %s (%s-%s): %s' % \ (err.filename, err.lineno, err.offset, err.text) print err
输出结果
C:/Users/nhooo1/~.py Syntax error <string> (1-9): six times seven invalid syntax (<string>, line 1)