17

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

像:

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

2 回答 2

32

以下示例代码向您展示了如何使用 pass 捕获和忽略异常。

try:
    do_something()
except RuntimeError:
    pass # does nothing
else:
    print("Message: ", line) 
于 2012-05-05T17:09:58.633 回答
17

虽然我同意 Jochen Ritzel 的答案是一个很好的答案,但我认为其中可能存在一个小小的疏忽。通过passing,异常 /is/ 被处理,只是什么都不做。所以真的,这个例外被忽略了。

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

try:
    do_something()
except RuntimeError:
    raise #raises the exact error that would have otherwise been raised.
else:
    print("Message: ", line) 
于 2012-05-05T17:36:17.810 回答