为什么在这个Python代码中出现'意外缩进'?

时间:2014-06-13 16:20:37

标签: python indentation

以下是我输入的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))

我没有处理异常并打印错误消息,而是收到"意外缩进" 错误消息。

为什么会这样?

提前致谢。

3 个答案:

答案 0 :(得分:2)

您无法在触发异常的代码中捕获语法错误(包括缩进错误)

解析器在加载文件时抛出异常,而不是在运行代码时抛出异常。由于错误,代码永远不会运行。

例如,当您使用import加载模块或将文本传递给compile()函数时,您只能从“外部”捕获异常。

答案 1 :(得分:0)

您无法捕获实际编译器捕获的错误。

SyntaxErrorIndentationError会破坏您的实际代码,而不是您的代码应该执行的操作,从而导致错误。

答案 2 :(得分:0)

Python失败了,因为解释器看到语法错误并停止;你的代码永远不会有机会执行。它只会在程序编译后看到的代码上抛出IndentationError:

has_syntax_error = '''
    print ("something")
      print ("somethign else")
'''

try:
    eval (has_syntax_error)
except IndentationError:
    print ("Caught exception")