Try/catch关闭python中的postgres-db连接

2024-04-16 12:49:52 发布

您现在位置:Python中文网/ 问答频道 /正文

有人告诉我,目前,如果抛出错误,我下面的内容将导致数据库无限期地保持打开状态。如何使用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}$

Tags: 数据库内容closedb状态connect错误语句
2条回答

将连接和游标用作context managers(with语句)可能最简单:

从文件中:

with psycopg2.connect(your_stuff_in_here) as conn:
    with conn.cursor() as curs
        curs.execute('SELECT * FROM test')

这将在出现任何错误后自动清除。如果需要对错误进行更细粒度的控制,可以使用try/catch/finally。在

当python进程退出时,连接将关闭。除非python进程是一个长期运行的守护进程,否则没有什么可担心的。在

试图抓住这个似乎毫无意义。如果正常情况下连接拒绝关闭,在特殊情况下,您将如何处理?估计它也不会关闭那里,因为什么都没有改变。只有当python是一个长时间运行的进程,并且异常条件导致该进程中止(否则不会发生)时,捕捉到该进程才有意义。在

相关问题 更多 >