相关疑难解决方法(0)

如果第一个元素是异常,为什么提高元组有效?

我很难搞清楚这一点,它是关于在Python 2.7中引发异常时可以做的错误:

try:
  raise [1, 2, 3, 4]
except Exception as ex:
  print ex
Run Code Online (Sandbox Code Playgroud)

这里的消息是"异常必须是旧式类或派生自BaseException,而不是列表" - 这部分没问题,但当我将其更改为元组时,我感到困惑:

try:
  raise (1, 2, 3, 4)
except Exception as ex:
  print ex
Run Code Online (Sandbox Code Playgroud)

这里的消息是"异常必须是旧式类或派生自BaseException,而不是int" - 为什么它被解释为引发int,而不是元组?

Futhermore:

try:
  raise (Exception, 'a message')
except Exception as ex:
  print ex
Run Code Online (Sandbox Code Playgroud)

在这里,我们实际上提出了一个异常(与之前的示例相比,我们提出了一个int的一致行为) - 我简单地认为这只是另一种方式:

try:
  raise Exception, 'a message'
except Exception as ex:
  print ex
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,"消息"正被传递给Exceptions ctor(如docs.python.org上所述)

有人可以解释第二和第三种情况,并可能指出我在解释器中编写代码吗?

python tuples exception python-2.7

22
推荐指数
1
解决办法
4482
查看次数

标签 统计

exception ×1

python ×1

python-2.7 ×1

tuples ×1