使用“无”除外是否有任何意外的副作用?我期望的行为是该子句不会捕获任何小测试似乎可以证实的内容。

这是我正在尝试做的一个粗略概述。当没有参数提供给函数时,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的后代或此类的元组。

10-04 11:25