以下是我输入的Python代码:
import builtins
try:
a = input("Enter name :- ")
if (a=='Joey'):
print("Yeah right ?!?")
print("How come")
else:
print("No Problem")
except IndentationError as i:
print("Error : {0}".format(i))
我没有处理异常并打印错误消息,而是收到"意外缩进" 错误消息。
为什么会这样?
提前致谢。
答案 0 :(得分:2)
您无法在触发异常的代码中捕获语法错误(包括缩进错误)。
解析器在加载文件时抛出异常,而不是在运行代码时抛出异常。由于错误,代码永远不会运行。
例如,当您使用import
加载模块或将文本传递给compile()
函数时,您只能从“外部”捕获异常。
答案 1 :(得分:0)
您无法捕获实际编译器捕获的错误。
SyntaxError
或IndentationError
会破坏您的实际代码,而不是您的代码应该执行的操作,从而导致错误。
答案 2 :(得分:0)
Python失败了,因为解释器看到语法错误并停止;你的代码永远不会有机会执行。它只会在程序编译后看到的代码上抛出IndentationError:
has_syntax_error = '''
print ("something")
print ("somethign else")
'''
try:
eval (has_syntax_error)
except IndentationError:
print ("Caught exception")