gpt4 book ai didi

python - 如何在 Python psycopg2 中捕获特定的 Postgres 异常

转载 作者:行者123 更新时间:2023-12-05 06:42:14 30 4
gpt4 key购买 nike

默认的 psycopg2 错误消息过于宽泛。大多数时候它只是抛出:

psycopg2.OperationalError

没有任何附加信息。因此很难猜测错误的真正原因是什么——用户凭据不正确,或者仅仅是服务器没有运行。所以,我需要一些更合适的错误处理,比如 pymysql 库中的错误代码。

我看过 this页面,但它没有帮助。当我做的时候

except Exception as err:
print(err.pgcode)

它总是打印 None。至于 errorcodes,它只是未定义。我试图导入它,但失败了。所以,我需要一些帮助。

最佳答案

对于任何寻求快速答案的人:

简答

import traceback  # Just to show the full traceback
from psycopg2 import errors

InFailedSqlTransaction = errors.lookup('25P02')

try:
feed = self._create_feed(data)
except InFailedSqlTransaction:
traceback.print_exc()
self._cr.rollback()
pass # Continue / throw ...

长答案

  1. 转到psycopg2 -> erros.py ,您将找到查找函数lookup(code)
  2. 转到 sqlstate_errors 中的 psycopg2\_psycopg\__init__.py,您将找到所有要作为字符串添加到 lookup 函数中的代码。

关于python - 如何在 Python psycopg2 中捕获特定的 Postgres 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37851375/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com