2011-05-23 44 views
0

我在某處閱讀我應該在BLL和UI中執行驗證的地方。這是這種情況,我應該如何處理錯誤/異常?BLL中的驗證

我正在創建一個應用程序來管理我們的客戶數據。如果客戶端沒有附加任何項目,用戶可以刪除客戶端。在BLL子如下:

Public Shared Sub DeleteClient(ByVal clientsID As Integer) 

     Dim clientDataAccessLayer As New ClientDAO 
     clientDataAccessLayer.DeleteClient(clientsID) 

End Sub 

我已經檢查的UI,而不是調用此子客戶端是否有任何項目,但是否也應該這樣子中添加一些驗證,我應該怎麼辦它?拋出異常或根本不允許它運行?

回答

1

是的。你應該在這個子(bll)中添加一些驗證並拋出一個你的UI應該處理的異常。

這似乎違反了DRY原則(因爲您重複邏輯來停止UI上的選項),但業務層應始終保持數據完整性。例如,如果您嚮應用程序引入不同的UI或Web服務,則數據完整性將保持不變。

+0

謝謝,我會研究如何處理異常,因爲我之前沒有這樣做。 – Westicle 2011-05-23 12:43:14

0

我讀的地方,我應該 我BLL進行審定 以及UI。這是什麼情況,我應該如何處理錯誤/異常?

您的例外問題應該只在表示層中完成。 原因 - 假設您有Presentatin/DAL/BLL。在各處實施異常處理都會導致性能問題。另一方面,在表示層執行異常處理將導致異常自動進入調用函數的catch塊中

只有在對數據庫結果進行驗證檢查的情況下,驗證應該在BLL中進行。