在Python 3中有使用异常链的标准方法吗?
在处理一个例外“A”的过程中,可能会发生另一例外“B”。在Python2.0版本中,如果发生这种情况,则异常B向外传播,而异常A丢失。了解这两种异常对调试问题很有用。
有时,异常处理程序故意重新引发异常是有用的,以提供额外的信息或将异常转换为另一种类型。__cause__属性提供了一种明确的方式来记录异常的直接原因。
异常链接仅在Python3中可用。Python3具有引发...从子句到链式异常。我们使用raise..from子句重写给定的代码,如下所示
try:
s = {‘a’:1, ‘b’:2}['c']
except KeyError as e:
raise ValueError('failed') from e默认情况下,Python3将显示异常处理期间发生的所有异常,如下所示:
Traceback (most recent call last):
File "source_file.py", line 2, in <module>
s = {'a':1, ‘b’:2}['c']
KeyError: 'c'上面的异常是以下异常的直接原因:
Traceback (most recent call last):
File "source_file.py", line 4, in <module>
raise ValueError('failed') from e
ValueError: failed热门推荐
10 祝孙辈生日祝福语简短
11 恋人跨年祝福语大全简短
12 考大学敬酒简短祝福语
13 开工投产大吉祝福语 简短
14 偶然结婚祝福语朋友简短
15 感谢学长学姐祝福语简短
16 戏精的祝福语简短
17 我要结婚祝福语简短
18 婚前女儿生日祝福语简短