通用異常處理框架(4)

發表于:2014-04-28來源:博客園作者:風語者·疾風點擊數: 標簽:
該層和WebUILayer的配置除AlertType為WinUI方式外,基本一致。 以上配置為開發調試方式時,若是在發布到 測試 或正式環境,只需要把WinUILayer和WebUILayer中的

  該層和WebUILayer的配置除AlertType為WinUI方式外,基本一致。

  以上配置為開發調試方式時,若是在發布到測試或正式環境,只需要把WinUILayer和WebUILayer中的ReturnMode屬性更改為ErrorString方式,即可讓用戶看到的是友好的錯誤信息。

  補充:WinUI項目的異常日志記錄器可以再增添一個本地異常Log文件方式,當發生異常時,可以根據用戶提供的Log文件進行分析。

  項目中調用

  在寫好配置文件之后,項目中引用ExManagement包。調用方法如下,項目中任何地方調用處理方式完全一致

// 返回值根據用戶配置而不同,可以為ErrorId, ErrorString以及ExceptionString

string strMessage;

try

{

;

}

catch(Exception ex)

{

// 參數ex, 異常對象

// 參數"BLL001", ErrorId, 即錯誤編號

// 參數"BusinessLogicLayer", ExHandlerName, 即異常處理器名稱, 建議于層名稱對應

// 參數UserId, 即當前用戶Id

ProcessExeception(ex, "BLL0001", "BusinessLogicLayer", UserId);

}

  四、效果評價

  可配置性。通過該異常處理框架可以方便的對異常處理進行需要的配置??膳渲玫膬热荩?/p>

  可以配置多個異常日志記錄以不同的方式記錄在不同的位置;

  異常處理方式可以有多種:拋出包裝后異常對象、 返回詳細的異常信息(調試用)、返回錯誤提示信息(發布后給用戶看)以及錯誤編號;

  靈活性。建立在可配置性的基礎上,可以組合出多種異常處理方案,以滿足不同項目的特殊需要。

  開放的可擴展性。用戶可以自行實現框架提供的接口,自行擴展異常處理以及異常日志記錄的類,以插件形式供框架調用,以實現最大可能的靈活性。

  性能。因為使用了不少反射技術,在性能上有一定損耗,但使用了單例模式來彌補,只在項目第一出現異常的時候反射加載對象,以后再次調用時則直接使用該對象,對效率基本沒有任何損耗了。

  而多數情況下,以框架提供的默認解決方案已經能夠滿足普通項目的需要,提供一個功能比較完整的,健壯的異常處理機制:

  1) 方便和簡化了開發人員及時定位和發現異常原因;

  2) 對系統運行狀況提供了強有力的數據支持,并使錯誤信息統一的方式管理,可以改善用戶體驗;

  3) 當項目在用戶使用中發現運行錯誤時,可以記下系統反饋的異常記錄編號后于項目開發人員聯系,而開發人員可以根據記錄編號得到異常發生的詳細信息進行分析。有助于縮短項目異常反饋時間。

  五、推廣建議

  該異常處理框架基本適合所有.Net項目,因為可以靈活的配置以適應不同項目的具體需要。

  在一個項目推廣中,只需要有一個人比較深入的了解該異常處理框架的原理以及如何進行配置和自定義擴展開發,掌握時間大概只需要半天到一天時間。而項目中其他人員無須知道該框架的運行機制,他們只需要在每個捕捉異常的地方用同樣的、唯一的方法調用框架即可。

  因為該框架對于項目而言是高度聚合,低耦合的,對于項目而言不需要知道異常究竟會被如何處理,減少對項目的依賴。因此對于現有異常處理系統存在不足以及新項目是應該大力推薦使用該框架進行異常處理的,并且對現有項目的改造工作不大;當然也可以選擇對項目已有部分不改動,新開發部分進行使用該框架進行異常處理也是完全可以的。

  異常處理框架本身沒有做任何自身的異常情況處理,所以在采用框架的時候需要先按照預想的配置在模擬環境中進行調試,確認能夠正常運行之后再加入到正式項目中去,避免在正式環境中出現框架本身異常無法判斷的情況。

  當然因為異常處理的可能方案比較多,該框架的第一個版本可能會有遺漏的可能,但因為框架本身的良好擴展性,多數的特殊情況應該可以用戶自行擴展解決。若有無法解決的可以和我聯系,對框架本身代碼做調整,以求完善該框架。

  另外,該異常處理框架若與最近討論比較熱門的AOP(Aspect Oriented Programming面向方面編程)思想結合可以最大程度使系統的業務代碼和系統異常處理代碼完全分離,并提供更為準確的異常信息。因AOP技術目前在發展階段,并需要完全的純OOP項目中實施,暫不對此展開討論。

原文轉自:http://kb.cnblogs.com/page/81682/

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97