В настоящее время я пишу скрипт, который использует 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)
После выхода из программы без закрытия соединения я получаю ошибки при попытке изменить базу данных.
Есть ли способ безопасно закрыть соединение даже при нечистом выходе?