使用"除无"之外是否有任何意想不到的副作用?我期望的行为是,一些小的测试似乎证实了该条款不会捕获任何内容.
这是我想要做的大致概述.如果没有为函数提供参数,则exceptions = None会创建"除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:
...
Run Code Online (Sandbox Code Playgroud)
Ign*_*ams 10
在这里工作正常(在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
Run Code Online (Sandbox Code Playgroud)
对于带有表达式的except子句,将计算该表达式,如果结果对象与异常"兼容",则子句匹配该异常.如果对象是异常对象的类或基类,或者包含与异常兼容的项的元组,则该对象与异常兼容.
因此,表达不有是一个异常类型,它只会失败永远匹配.
此行为在Python 3.x中已更改,并且后面的表达式except
必须是BaseException
此类的后代或元组.
归档时间: |
|
查看次数: |
7621 次 |
最近记录: |