如何使用 AsyncPG 捕获 SQL 错误?
How to catch SQL errors with AsyncPG?
我很难找到有关如何在 AsyncPG 中处理错误的示例。
我正在执行此查询:
await pg_con.execute("UPDATE users set x = , y = WHERE z = ", x, y, z)
我希望能够捕获任何 SQL 错误,例如记录不存在。我该怎么做?
asyncpg 有包含所有可能异常的模块异常。您可以捕获特定错误,例如:
import asyncpg
try:
await pg_con.execute("UPDATE users set x = , y = WHERE z = ", x, y, z)
except asyncpg.ForeignKeyViolationError as e:
print('error occurred', e)
或者只是捕捉 asyncpg.PostgresError
甚至 Exception
。
此外,有时很容易在 python 解释器中检查异常详细信息:
try:
await pg_con.execute(query)
except Exception as e:
breakpoint() # then use e.__class__, e.args, dir(e), etc
我很难找到有关如何在 AsyncPG 中处理错误的示例。 我正在执行此查询:
await pg_con.execute("UPDATE users set x = , y = WHERE z = ", x, y, z)
我希望能够捕获任何 SQL 错误,例如记录不存在。我该怎么做?
asyncpg 有包含所有可能异常的模块异常。您可以捕获特定错误,例如:
import asyncpg
try:
await pg_con.execute("UPDATE users set x = , y = WHERE z = ", x, y, z)
except asyncpg.ForeignKeyViolationError as e:
print('error occurred', e)
或者只是捕捉 asyncpg.PostgresError
甚至 Exception
。
此外,有时很容易在 python 解释器中检查异常详细信息:
try:
await pg_con.execute(query)
except Exception as e:
breakpoint() # then use e.__class__, e.args, dir(e), etc