2012-03-22 129 views
1

我正在致力於一個廣泛依賴Exchange Web服務的項目。截至目前,我正在將所有服務電話都打包在try/catch上。雖然這並不是一個問題,但是通過將一條線變爲10〜,它確實混亂了很多代碼。進行服務調用的好習慣

下面是我看到的選項:

  1. 創建一個函數,如bool TryExecute(Action action, Action failCallback)
  2. 界面我所有的服務調用和使用攔截器來包裝我的電話

這些是任何的替代品我錯過了?

回答

2

取決於您的實施。我會將try/catch置於儘可能接近故障點的位置(並且可以優雅地處理)。 例如,將這些調用包裝到接口中(用於測試),並且僅使用常見的異常類型(例如處理EndpointNotFound並將任何意外故障包裝到您自己創建的ExchangeCommunication-Exception中)。

你的兩個選擇似乎可以處理所有類型的錯誤,我不會建議這個,但除此之外它肯定比干DRY