如何在Python中捕获SyntaxError异常?

每当解析器找到它不理解的源代码时,就会发生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)