有人告诉我,目前,如果抛出错误,我下面的内容将导致数据库无限期地保持打开状态。如何使用try catch语句确保在发生错误时连接关闭?在
connection = psycopg2.connect(some_stuff_in_here)
print("Connected to DB")
cursor = connection.cursor()
if __name__ == '__main__':
does_something()
cursor.close()
connection.close()
print("Disconnected from DB")
我要做以下事情吗?我觉得它仍然不能工作,因为如果在尝试关闭连接时发生错误,except块仍然无法关闭它。在
^{pr2}$
将连接和游标用作context managers(with语句)可能最简单:
从文件中:
这将在出现任何错误后自动清除。如果需要对错误进行更细粒度的控制,可以使用try/catch/finally。在
当python进程退出时,连接将关闭。除非python进程是一个长期运行的守护进程,否则没有什么可担心的。在
试图抓住这个似乎毫无意义。如果正常情况下连接拒绝关闭,在特殊情况下,您将如何处理?估计它也不会关闭那里,因为什么都没有改变。只有当python是一个长时间运行的进程,并且异常条件导致该进程中止(否则不会发生)时,捕捉到该进程才有意义。在
相关问题 更多 >
编程相关推荐