有没有办法捕获web2py的DAL引发的异常?
我们说我有以下代码:
for item in data_dict:
db.table_name.insert(item)
如果任何项目未能正确插入,web2py将处理此项并且不会向数据库提交任何记录并创建票证。我想捕获数据库抛出的错误并输出自定义错误消息。
在try / except块中包装插入或整个for循环会插入有效记录并跳过并抛出无效错误,使数据库处于已插入某些记录而其他记录未插入的状态。这不是预期的行为。
我希望有人可以给我一个无痛的解决方案来输出自定义错误消息。我使用的是web2py 2.7.4
TIA NAV
答案 0 :(得分:1)
我相信我有你正在寻找的解决方案,直接来自web2py文档: http://www.web2py.com/book/default/chapter/06#commit-and-rollback
只需捕获错误,然后发出回滚。
” 在您发出commit命令之前,实际上不会提交创建,删除,插入,截断,删除或更新操作“ 提交
>>> db.commit()
要检查它,让我们插入一条新记录:
>>> db.person.insert(name="Bob")
2
并回滚,即忽略自上次提交以来的所有操作:
>>> db.rollback()