SyntaxError是一个完全普通的内置异常。这一点都不特殊。仅在(通常)抛出时的情况有点不寻常。
语法错误意味着 无法解析 具有该错误的代码。它甚至没有开始成为有效程序,因此无法执行。因此 , 在程序运行
之前
SyntaxError会引发异常,因此无法从程序内部捕获异常。 __
更具体地说,此异常是由解析器引发的。因为解析器在执行代码之前完全运行,而不是与之交织,所以程序无法捕获其自身的语法错误。
解析器本身只是一个程序,但:代码调用解析器可以赶上
SyntaxError就像所有其他异常(因为它 是 像其他的除外)。“调用解析器”的示例包括:
compile
,exec
,eval
import
陈述- 在模块几个功能喜欢
ast
,tokenizer
,parser
等。



