2013-12-09 50 views
0

有沒有辦法捕獲web2py的DAL拋出的異常?Web2Py數據庫抽象層拋出的異常拋出

讓我們說,我有以下代碼:

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

如果任何項目未能正確插入的web2py處理這一點,並沒有犯任何記錄到數據庫中,並創建了票。我想捕獲數據庫拋出的錯誤並輸出自定義錯誤消息。

在try/except塊中包裝插入或整個for循環會插入有效的記錄,並跳過並拋出無效錯誤,使數據庫處於已插入一些記錄而其他項未插入的狀態。這不是預期的行爲。

我希望有人能給我一個無痛的解決方案來輸出自定義的錯誤信息。我使用的web2py 2.7.4

TIA 導航

+0

插入失敗的典型原因是什麼? –

回答

0

我相信我有,你要尋找的解決方案,直接從web2py的文檔: http://www.web2py.com/book/default/chapter/06#commit-and-rollback

只需捕獲錯誤,併發出回滾。

「 沒有創建,刪除,插入,截斷,刪除或更新操作實際上是承諾,直到你發出commit命令」 提交

>>> db.commit() 

要檢查它讓我們插入一個新的紀錄:

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

並回滾,即忽略所有的操作,因爲上次提交:

>>> db.rollback() 
+1

謝謝,由於某種原因,直到您向我解釋它幾次後,它才點擊,即使多次閱讀完此部分。 :-) – navanitachora

+0

太棒了!標記爲正確答案? ;) –