【发布时间】:2017-07-22 07:28:19
【问题描述】:
我正在阅读有关使用 try/except 块在 SQLAlchemy Core 中捕获异常的书籍示例:
from sqlalchemy.exc import IntegrityError
ins = insert(users).values(
username="cookiemon", #This username is already in db,
email_address="damon@cookie.com", should throw an IntegrityError
phone="111-111-1111", for violating unique constraint
password="password"
)
try:
result=connection.execute(ins)
except IntegrityError as error:
print(error.orig.message, error.params)
但是,我收到以下错误消息:
AttributeError: 'IntegrityError' 对象没有属性 'message'
这是书中示例的逐字记录,为什么我不能显示错误信息?
【问题讨论】:
-
您使用的是 python 3?异常不再具有消息属性,它们具有
args。见python.org/dev/peps/pep-0352/#transition-plan -
是的,我使用的是 python 3.5。好的,我刚刚切换到 print(error.args) 并且能够打印错误消息。谢谢!
-
应该添加第一条评论作为答案
标签: python error-handling sqlalchemy