Python错误处理两个相关任务

时间:2017-12-04 21:11:19

标签: python error-handling

处理此问题的最佳方法是什么?我想创建一个文件并将记录添加到数据库,但如果其中一个失败,我想撤消另一个。尝试一下看起来有点麻烦,除了另外一次尝试,除了在其内部处理撤消第一个任务,如果第二个失败。

try:
    open and write file
except:
    pass
else:
    try:
        add record to db
    except:
        delete file

2 个答案:

答案 0 :(得分:0)

使用try / except就足够了:

try:
    open and write file
    try:
        add record to db
    except:
        delete file
except:
    pass

答案 1 :(得分:0)

你说你想做什么以及代码可能的不同之处。根据您open and write file的实施情况,您可能会留下未删除的文件。

<强>解决方案

&#34; Flat优于嵌套&#34; - Python的禅宗

try:
    open and write file
    add record to db
except:
    delete file
    rollback database session

您可以更进一步,创建一个可以使用的上下文管理器,如下所示:

with record() as rec:
    open and write record to file
    add record to db