我有一個應用程序通過使用WCF開發的服務層提供其業務層。 我在想的是:這個服務層提供了像創建,更新等操作方法。這些操作會將這些調用重新路由到業務層。問題是:假設其中一個調用不接受空輸入值(如:創建空對象),那麼執行檢查的最佳位置在哪裏?我個人的答案在兩個地方(服務和業務),因爲我可以保證業務層的重用,而不使用服務層,反之亦然。在分層體系結構中拋出異常的地方?
對嗎?
感謝 馬爾科
如果你不處理在DAL或BLL錯誤我有一個應用程序通過使用WCF開發的服務層提供其業務層。 我在想的是:這個服務層提供了像創建,更新等操作方法。這些操作會將這些調用重新路由到業務層。問題是:假設其中一個調用不接受空輸入值(如:創建空對象),那麼執行檢查的最佳位置在哪裏?我個人的答案在兩個地方(服務和業務),因爲我可以保證業務層的重用,而不使用服務層,反之亦然。在分層體系結構中拋出異常的地方?
對嗎?
感謝 馬爾科
如果你不處理在DAL或BLL錯誤你的庫代碼,或者是在你的應用程序 使用較高層必須始終只能扔 例外,從不擔心如何 對付他們 的代碼。
這很重要,因爲您可能會在很多地方將此庫用於不同的目的。
在您的應用程序表示層中,如果您正在使用庫代碼並且知道可能的異常,那麼請使用try/catch來捕獲它們。
,然後直到你抓住它,它冒泡。 異常不會被「覆蓋」。
如果您在DAL中處理過,則不再有例外。 如果你沒有完全處理它,那麼BLL仍然可能會拋出另一個異常,因爲DAL中處理錯誤的方式不正確。
一般的規則是這樣的:
處理特定的錯誤和不使用一個通用的包羅萬象的。允許任何意想不到的例外情況進一步上漲。
嘗試在您的項目上運行FxCop,以查看您違反了最佳做法的位置。 http://www.gotdotnet.com/team/fxcop