在一行中捕获多个异常(块除外)

我知道我可以做到:

try:

# do something that may fail

except:

# do this if ANYTHING goes wrong

我也可以这样做:

try:

# do something that may fail

except IDontLikeYouException:

# say please

except YouAreTooShortException:

# stand on a ladder

但是,如果我想在两个不同的异常中做同样的事情,那么我现在想到的最好的方法就是:

try:

# do something that may fail

except IDontLikeYouException:

# say please

except YouAreBeingMeanException:

# say please

有什么办法可以做这样的事情(因为在两个异常中都采取的措施是say please):

try:

# do something that may fail

except IDontLikeYouException, YouAreBeingMeanException:

# say please

现在,这确实不起作用,因为它与以下语法匹配:

try:

# do something that may fail

except Exception, e:

# say please

因此,我捕捉两个截然不同的异常的努力并未完全实现。

有没有办法做到这一点?

回答:

例如,except子句可以将多个异常命名为带括号的元组。

except (IDontLikeYouException, YouAreBeingMeanException) as e:

pass

或者,仅对于Python 2:

except (IDontLikeYouException, YouAreBeingMeanException), e:

pass

用逗号将变量与变量分开仍然可以在Python 2.6和2.7中使用,但是现在已弃用,并且在Python 3中不起作用。现在你应该使用as。

以上是 在一行中捕获多个异常(块除外) 的全部内容, 来源链接: utcz.com/qa/404154.html

回到顶部