如何處理應用程序中的數據庫異常?
您是否在將數據傳遞給數據庫之前驗證數據,還是僅僅依靠數據庫模式驗證邏輯?
您是否嘗試從某種數據庫錯誤中恢復(例如超時)?數據庫異常處理最佳實踐
這裏有一些方法:
- 驗證傳遞到DB
- 左驗證,數據庫和處理DB異常正常
- 驗證兩側
- 驗證一些明顯的制約業務之前數據邏輯並將複雜驗證留給DB
您使用什麼方法?爲什麼?
更新:
我很高興看到越來越多的討論。
讓我們試着總結社區答案。
建議:
- 驗證兩側 上 客戶端
- 檢查業務邏輯的約束,讓DB做完整性檢查from hamishmcn
- 檢查早期以免打擾DB from ajmastrean
- 檢查早改善用戶體驗from Will
- 保持數據庫交互代碼到位 簡化開發from hamishmcn
- 對象關係映射(NHibernate的,LINQ的,等等)可以幫助你處理約束from ajmastrean
- 客戶端驗證是必要的安全原因from Seb Nilsson
你還有什麼說?這被轉換爲驗證具體問題。我們錯過了核心,即「與數據庫相關的錯誤最佳實踐」,哪些需要處理哪些以及哪些需要泡泡?
[@hamishmcn](http://stackoverflow.com/questions/39371/database-exception-handling-best-practices#39406)。好點,在業務邏輯層進行驗證的一個原因是創建用戶友好的用戶界面。但在多個地方進行這些驗證會打破DRY原則。你如何設法保持數據庫和客戶端驗證同步? – aku 2008-09-02 12:50:11