我正在编写一个实用程序模块并尝试尽可能地使其通用,我正在尝试弄清楚这里的行为:
for i in xrange(num_tries):
try:
return func(*args, **kwards)
except exceptions as e:
continue
我理解
except:
将捕获所有异常,并且
except (some, tuple, of, exceptions) as e:
将抓住这4个例外,
但是空元组的行为是什么?它只是抓住
我的猜测是1,但我想不出快速的测试方法。我的想法是,除了没有参数之后,除了None之外,一个空元组就像是在说“抓住这个列表中的所有内容”,但是列表中没有任何东西,所以没有任何东西被捕获。
谢谢!
答案 0 :(得分:1)
答案是1:没有例外,在Python 2和Python 3中。
exceptions = ()
try:
a = 1 / 0
except exceptions as e:
print ("the answer is 2")
Traceback (most recent call last): File "<pyshell#38>", line 2, in <module>
a = 1 / 0
ZeroDivisionError: integer division or modulo by zero
如果您希望在例外列表为空时回答2的行为,则可以执行
except exceptions or (Exception,) as e: