2010-12-22 50 views
6

我是否應該將每個異常包含在更有意義的異常中?包裝的含義使異常成爲新異常的內部異常,並引發「新」異常。何時包裝例外

我這樣做需要考慮哪些因素?

是包裝異常的原因的想法:

的SQL Server可以拋出一堆從T-SQL水平異常。我的C#API只能處理SQLException(處理含義有一個catch塊),所以我想把異常包裝到我的API可以處理的類型中。這只是一個例子,SQL Server只會拋出SQLException,但是這個概念是正確的嗎?

我假設拋出「新」異常,就像上面提到的那樣,將會產生一個不是真正原因的原因(開發人員需要知道),所以對最終用戶更友好並隱藏敏感實際/第一個異常的實現細節。

感謝

回答

6

你是在正確的軌道上。在跨越應用程序層邊界時封裝異常是一種很好的做法。下面的兩個職位都不錯讀取最佳實踐

  1. From MSDN
  2. Java specific
+1

Wouln't這是每一個例外呢?因爲他們都會從應用邏輯走向界面。 – dotnetdev 2010-12-23 00:29:17