假設我們有一個使用業務層(EJB,Spring服務等)類型的客戶端應用程序(web或獨立的)。比方說,用戶想要執行一些業務邏輯(例如創建一些東西)。這個操作有一些先決條件,如數據格式,數據庫中其他對象的存在,權限等等。現在什麼是這個業務邏輯層的最佳設計,我的意思是如何返回驗證錯誤,指示成功,返回意外錯誤等?在業務層返回業務驗證結果的首選方法
的方法,我知道:
1)
驗證錯誤返回例如OperationResult目標對象的身份和違反列表,
成功:意外的錯誤OperationResult與狀態=成功空錯誤列表,
拋出運行時異常
2)
驗證錯誤拋出ValidationException(runitme或checked?)具有違規列表
成功:無效或創建實體(如果需要)
對於意外錯誤拋出運行時異常
我知道有兩種基本方式,但每次我開始寫作時都很難做出正確的選擇。
我同意。最好列出驗證錯誤,然後在最後拋出異常(如果列表不爲空)。將列表附加到例外。列表還允許你向用戶顯示「警告」,所以你可以有一個額外的參數用於確認警告並繼續進行...... – Ben 2011-03-11 13:33:41
@Ben,如果是的話,應該檢查ValidationException還是運行時?如果選中,用戶需要處理該問題,並且可能會在代碼中混淆很多(try/catch塊太多)。在1)版本中明確返回具有違規列表的狀態對象會更好嗎? – veilsoen 2011-03-11 13:46:05
另一方面,靈活的ValidationException層次結構在客戶端更好(捕獲和處理每個正確的方式)而不是簡單的違規列表。 – veilsoen 2011-03-11 13:49:16