gpt4 book ai didi

python:如果finally block 引发异常,则从try block 中恢复异常

转载 作者:太空狗 更新时间:2023-10-29 17:18:21 25 4
gpt4 key购买 nike

假设我有这样的代码:

try:
try:
raise Exception("in the try")
finally:
raise Exception("in the finally")
except Exception, e:
print "try block failed: %s" % (e,)

输出是:

try block failed: in the finally

从那个 print 语句来看,是否有任何方法可以访问在 try 中引发的异常,或者它是否永远消失了?

注意:我没有考虑用例;这只是好奇。

最佳答案

我找不到任何关于这是否已向后移植的信息,并且手边没有 Py2 安装,但在 Python 3 中,e 有一个名为 e.__context__< 的属性,因此:

try:
try:
raise Exception("in the try")
finally:
raise Exception("in the finally")
except Exception as e:
print(repr(e.__context__))

给出:

Exception('in the try',)

根据 PEP 3314 ,在添加 __context__ 之前,有关原始异常的信息不可用。

关于python:如果finally block 引发异常,则从try block 中恢复异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10248410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com