重新提出例外有什么意义?

时间:2016-08-25 11:19:37

标签: python exception

所以我在其他地方看到提到使用以下内容来重新提出异常。

try:
    whatever()
except:
    raise

重新提出异常的目的是什么?当然,未被捕获的例外无论如何都会提升到顶峰?即:

try:
    int("bad")
except:
    raise

输出相同:

int("bad")

即。我在控制台中得到了一个ValueError。

2 个答案:

答案 0 :(得分:3)

您的示例代码毫无意义,但如果您想执行仅在失败时执行的日志记录或清理,您可以将其放在except:raise之间,并且您可以执行此操作工作然后继续进行,好像原始异常正常冒泡。

答案 1 :(得分:1)

想象一下以下代码。

一点设置:例如,您负责维护庞大的信息数据库,任何数据丢失都将是灾难性的!

huge_dictionary = {'lots_of_important':['stuffs']}
try:
    check_data(new_data) #make sure the data is in the correct format
    huge_dictionary['lots_of_important'].append(new_data)
except:
    data_writer.backup(huge_dictionary)
    data_writer.close()
    #and any other last second changes
    raise
相关问题