現在、sqlite3 を使用するスクリプトを作成しています。最近、コードがエラーで早期に終了したために、別のプログラムがデータベースを使用しているという問題に遭遇しました。
同様の問題で、通常は次を使用します。
conn = sqlite3.connect(...)
try:
#Do stuff
finally:
conn.close()
しかし、これは私の場合はうまくいきません。一言で言えば、これは私のコードです:
インポートsqlite3
class Thingamadoodle:
def __init__(self, ...):
self.conn = sqlite3.connect(...)
...
#Methods and stuff
def __del__(self):
self.conn.close()
poop = Thingamadoodle(...)
poop.do_stuff(...)
poop.throw_irritating_exception_that_you_cant_track_down(irritatingness=11)
プログラムが接続を閉じずに終了した後、データベースを変更しようとするとエラーが発生します。
汚れた出口でも安全に接続を閉じる方法はありますか?