除了python

时间:2018-06-15 11:07:59

标签: python exception-handling tuples except

我正在编写一个实用程序模块并尝试尽可能地使其通用,我正在尝试弄清楚这里的行为:

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. 无例外
  2. 所有例外
  3. 我的猜测是1,但我想不出快速的测试方法。我的想法是,除了没有参数之后,除了None之外,一个空元组就像是在说“抓住这个列表中的所有内容”,但是列表中没有任何东西,所以没有任何东西被捕获。

    谢谢!

1 个答案:

答案 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: