如何使用AsyncPG捕获SQL错误



我很难找到如何在AsyncPG中处理错误的示例。我正在执行此查询:

await pg_con.execute("UPDATE users set x = $1, y = $2 WHERE z = $3", x, y, z)

我希望能够捕获任何SQL错误,例如记录不存在。我该怎么做?

asyncpg有模块异常以及所有可能的异常。您可以捕获特定错误,例如:

import asyncpg
try:
await pg_con.execute("UPDATE users set x = $1, y = $2 WHERE z = $3", x, y, z)
except asyncpg.ForeignKeyViolationError as e:
print('error occurred', e)

或者仅仅捕获CCD_ 1或者甚至CCD_。此外,在python解释器中检查异常细节有时很容易:

try:
await pg_con.execute(query)
except Exception as e:
breakpoint()  # then use e.__class__, e.args, dir(e), etc

最新更新