我写了这段代码,除了可以抛出的错误之外。这是代码:
def println(stringint):
try:
print stringint
except (SyntaxError, NameError):
print "Invalid format."
我像这样从python解释器运行代码,只有这样:
>>> import pcl
>>> pcl.println("Hello")
为什么错误不被排除?我怎样才能发现错误?
答案 0 :(得分:3)
与语法有关的那些错误是解析级别错误,这意味着,之前发生的错误正在解释特定代码。
以下不同类型的错误:
print("Hello) # Note the missing '"'
那
print(4/0) # Syntactically correct, but obviously an error.
因此,try -- except
块无法处理语法错误。
有关详细信息,请参阅此答案:SyntaxError inconsistency in Python?
答案 1 :(得分:0)
您的代码运行良好,"Hello"
不应该引发EOLError
或NameError
,因为引号已关闭,而且它是一个字符串。