【发布时间】:2021-04-26 17:20:18
【问题描述】:
我的代码中有一个 try 块大小写,我想忽略一个特定异常,其余的都应该被引发。
例如:
try:
blah
except <exception> as e:
raise Exception(e)
在这种情况下,我希望引发除一种情况之外的所有异常,比如如果异常是“未找到查询”,我必须忽略它。
如何忽略那个异常?
我可以使用多个 except 块但是如何定义异常?
【问题讨论】:
-
可以添加多个except子句
-
有点像Handling all but one exception 的反面。捕获该特定异常并重新
raise所有其他异常。 -
你能澄清一下你在挣扎什么吗?您已经展示了处理(并因此忽略)特定异常的代码。 “我希望引发所有异常”是什么意思?在处理异常时,它们已经被提出——不处理它们就意味着它们将继续。您想重新提出它们作为不同的例外吗?
-
"我可以使用多个 except 块但是如何定义异常?"请说明您要忽略的 what 异常。什么用逻辑术语定义“例外”?例如,只有
KeyError而不是LookupError?特定的KeyError值,即具有特定的e.args?一个特定的KeyErrorinstance,即通过身份标识?