完全退出时关闭sqlite3数据库

2024-04-23 06:52:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个使用sqlite3的脚本。我最近遇到了另一个程序正在使用数据库的问题,因为我的代码提前退出并出现错误。在

对于类似的问题,人们通常使用:

conn = sqlite3.connect(...)
try:
    #Do stuff
finally:
    conn.close()

但这对我来说行不通。简而言之,这是我的代码:

导入sqlite3

^{pr2}$

程序在没有关闭连接的情况下退出后,当我试图修改数据库时会出现错误。在

有没有方法可以安全地关闭连接,即使是在不干净的出口上?在


Tags: 代码程序脚本数据库closeconnect错误情况
1条回答
网友
1楼 · 发布于 2024-04-23 06:52:21

老实说,我不太理解这个问题,但为什么不把poop.do_stuff()包装在try/except块中呢?在

try:
    poop.do_stuff()
except:
    poop.__del__()
finally:
    poop.__del__()

或者,为了更干净一点,请使用上下文管理器:

^{pr2}$

执行方式如下:

with Thingmadoodle(args) as poop:
    #do things

在所有代码完成之后,或者在语句中发生异常之后,__exit__将被执行,您可以安全地关闭它。在

希望这有帮助!在

相关问题 更多 >