处理此问题的最佳方法是什么?我想创建一个文件并将记录添加到数据库,但如果其中一个失败,我想撤消另一个。尝试一下看起来有点麻烦,除了另外一次尝试,除了在其内部处理撤消第一个任务,如果第二个失败。
try:
open and write file
except:
pass
else:
try:
add record to db
except:
delete file
答案 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