我正在处理一些连接到 sqlite 数据库的代码。在调试所述代码的过程中,我遇到了挂起与数据库的打开连接的问题,因为某些错误阻止了关闭命令的执行。因为 db 和 c 是在函数中定义的,所以我无法从命令行找到并关闭这些对象。它们就像孤立的连接或其他东西,但无论如何它们都会阻止我对数据库做任何其他事情,直到我关闭并重新打开我的交互式控制台。这是它的样子:
def something()
db=sqlite3.connect('mydatabase')
c=db.cursor()
somecode
lots of different things happening in here
this may have errors
thus stopping execution
db.commit()
c.close()
db.close()
我已经在“finally”块中尝试了一个带有最终关闭操作的 try/except 子句,但这可以防止在我调试时将异常引发回交互式输出,并且事情会“默默地”失败(也许我不是做那部分对吗?)。有一个更好的方法吗?