我们该如何写一个什么都不做的`except`语句?

Sam*_*oon 3 python exception try-catch python-3.x

我想要一个try-block,以便-block 内部引发的任何异常都try无法处理。这样我就可以编写一个try块来为将来做准备。有一天,我将写一些有意义的错误处理。但是,我还没有真正的except陈述。以下是作品,但很难看

_ = type("", (Exception,), dict())

try:
    lizard = [1, 2, 3]
    y = z + w
    print(lizard[983])
except _:
    print("I hope this string never prints")
Run Code Online (Sandbox Code Playgroud)

che*_*ner 5

except完全跳过该条款。一条try语句至少需要一个except子句一个finally子句,无论您是否捕获异常,该子句都会执行。

try:
    lizard = [1, 2, 3]
    y = z + w
    print(lizard[983])
finally:
    pass
Run Code Online (Sandbox Code Playgroud)

finally子句实际上不会执行任何代码,并且不会以任何方式影响代码的控制流;它只是在您离开try语句之前注入无操作,无论是通过成功完成代码还是引发未捕获的异常。

一旦开始添加except子句,则可以删除finally子句或将其保留在原位。

(删除的答案会捕获并立即重新引发任何异常,这对IMO也很好:

try:
    ...
except Exception:
    raise
Run Code Online (Sandbox Code Playgroud)