Python:try-catch-else而不处理异常。可能?

时间:2012-05-05 17:09:10

标签: python exception try-catch

我是python的新手,想知道我是否可以在不处理异常的情况下创建try-catch-else语句?

像:

try:
    do_something()
except Exception:
else:
    print("Message: ", line) // complains about that else is not intended

2 个答案:

答案 0 :(得分:30)

以下示例代码显示了如何使用pass。

捕获和忽略异常
try:
    do_something()
except RuntimeError:
    pass # does nothing
else:
    print("Message: ", line) 

答案 1 :(得分:7)

虽然我同意Jochen Ritzel的答案很好,但我认为可能会有一个小的疏忽。通过pass,异常/正在被处理,只做任何事情。实际上,这个例外被忽略了。

如果你真的不想处理异常,那么异常应该是raise d。以下代码对Jochen的代码进行了更改。

try:
    do_something()
except RuntimeError:
    raise #raises the exact error that would have otherwise been raised.
else:
    print("Message: ", line)