假设您有以下代码:
import sqlite3
conn = sqlite3.connect('mydb')
cur = conn.cursor()
# some database actions
cur.close()
conn.close()
# more code below
如果我稍后尝试使用conn
或cur
个对象,我怎么能告诉它们已关闭?我找不到.isclosed()
方法或类似的方法。
答案 0 :(得分:10)
你可以用try, except
语句包装:
>>> conn = sqlite3.connect('mydb')
>>> conn.close()
>>> try:
... resultset = conn.execute("SELECT 1 FROM my_table LIMIT 1;")
... except sqlite3.ProgrammingError as e:
... print e
Cannot operate on a closed database.
答案 1 :(得分:0)
如何确保连接和光标永远不会关闭?
你可以拥有一个基于状态的程序,你可以保证只在正确的时间调用close()。
或者将它们包装在传递实现为close()
的其他对象中。或者按_isclosed
添加close()
成员集,并由isclosed()
访问。