【发布时间】:2013-04-13 23:06:46
【问题描述】:
如何处理除一个异常之外的所有异常?
try:
something
except <any Exception except for a NoChildException>:
# handling
类似这样,除了不破坏原始回溯:
try:
something
except NoChildException:
raise NoChildException
except Exception:
# handling
【问题讨论】:
-
简单回答:不要。捕获所有异常确实是一种不好的做法,因为您会倾向于捕获您无意捕获的异常,从而掩盖错误。这样做的合法案例很少。
-
您似乎已经回答了自己的问题。告诉我们您对自己拥有的东西不满意的原因。
-
@Robᵩ 不完全是,他的示例会产生 new 异常,而不是重新引发旧异常。
-
@Lattyware 捕获所有异常没有问题 - 例如添加额外的上下文然后重新加注。但是,吞下所有异常(如本例所示)是不好的做法。
标签: python exception exception-handling error-handling