使用“无”除外是否有任何意外的副作用?我期望的行为是该子句不会捕获任何小测试似乎可以证实的内容。
这是我正在尝试做的一个粗略概述。当没有参数提供给函数时,exceptions = None会创建“except None”子句。只是想再次检查一下,我不会遇到意想不到的事情。
# exceptions is exception or set of exceptions I want to do special processing for
def check_exceptions(exceptions=None)
try:
...
except exceptions as e:
...
最佳答案
在这里工作正常(在Python 2.x下)。
>>> try:
... foo
... except None as e:
... pass
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
NameError: name 'foo' is not defined
source
因此,表达式不必是异常类型,它只会匹配失败。
此行为已在Python 3.x中更改,并且
except
之后的表达式必须是BaseException
的后代或此类的元组。