每当解析器发现不遵循缩进规则的源代码时,就会发生IndentationError。我们可以在导入模块时捕获它,因为该模块将在首次导入时进行编译。您无法将其捕获在包含try / except块的模块中,因为存在这种例外,Python无法完成模块的编译,并且模块中的任何代码都不会运行。
我们重写给定代码,如下所示以处理异常
try: def f(): z=['foo','bar'] for i in z: if i == 'foo': except IndentationError as e: print e
输出结果
"C:/Users/nhooo1/~.py", line 5 if i == 'foo': ^ IndentationError: expected an indented block