2010-07-13 94 views
2

我有一個應用程序通過使用WCF開發的服務層提供其業務層。 我在想的是:這個服務層提供了像創建,更新等操作方法。這些操作會將這些調用重新路由到業務層。問題是:假設其中一個調用不接受空輸入值(如:創建空對象),那麼執行檢查的最佳位置在哪裏?我個人的答案在兩個地方(服務和業務),因爲我可以保證業務層的重用,而不使用服務層,反之亦然。在分層體系結構中拋出異常的地方?

對嗎?

感謝 馬爾科

如果你不處理在DAL或BLL錯誤

回答

1

你的庫代碼,或者是在你的應用程序 使用較高層必須始終只能扔 例外,從不擔心如何 對付他們 的代碼。

這很重要,因爲您可能會在很多地方將此庫用於不同的目的。

在您的應用程序表示層中,如果您正在使用庫代碼並且知道可能的異常,那麼請使用try/catch來捕獲它們。

0

,然後直到你抓住它,它冒泡。 異常不會被「覆蓋」。

如果您在DAL中處理過,則不再有例外。 如果你沒有完全處理它,那麼BLL仍然可能會拋出另一個異常,因爲DAL中處理錯誤的方式不正確。

一般的規則是這樣的:

處理特定的錯誤和不使用一個通用的包羅萬象的。允許任何意想不到的例外情況進一步上漲。

嘗試在您的項目上運行FxCop,以查看您違反了最佳做法的位置。 http://www.gotdotnet.com/team/fxcop