通过数据库抽象层捕获Web2Py引发的异常



有没有办法捕获web2py的DAL引发的异常?

让我们说,我有以下代码:

for item in data_dict:
    db.table_name.insert(item)

如果任何项目未能正确插入,web2py会处理此问题,并且不会将任何记录提交到数据库并创建票证。我想捕捉数据库抛出的错误,并输出一条自定义的错误消息。

将插入或整个for循环封装在try/except块中会插入有效记录,并跳过无效记录并抛出错误,从而使数据库处于某些记录已插入而其他记录根本未插入的状态。这不是预期的行为。

我希望有人能给我一个无痛的解决方案来输出自定义错误消息。我正在使用web2py 2.7.4

TIA导航

我相信我已经从web2py文档中找到了您想要的解决方案:http://www.web2py.com/book/default/chapter/06#commit-和回滚

只需捕获错误,然后发出回滚。

"在发出提交命令之前,不会实际提交任何创建、删除、插入、截断、删除或更新操作"提交

>>> db.commit()

要检查它,让我们插入一个新记录:

>>> db.person.insert(name="Bob")
2

和回滚,即忽略自上次提交以来的所有操作:

>>> db.rollback()

最新更新