当我运行try except语句来捕获IndentationError时,语句不起作用,这是我的代码:
try:
for i in range(2):
print(i)
except IndentationError:
print('IndentationError')
然后我得到了结果:
try:
for i in range(2):
print(i)
except IndentationError:
print('IndentationError')
File "<ipython-input-57-5df0f4cccb57>", line 3
print(i)
^
IndentationError: expected an indented block```
为什么try语句在这种情况下不起作用?
答案 0 :(得分:1)
IndentationError
和其他SyntaxError
异常无法在源文件本身中捕获,因为这是一个解析阶段异常。此时try
没有运行,因为在此阶段无法解析代码并将其编译为字节码。
您只能在触发解析的代码中捕获此类异常,例如import
语句或显式compile()
函数调用。