異常處理總結 (clone from cnblog 08年07月24日)

  (資料不斷整理與收集,有空再更新)

 

說在前:
    本文描述的異常處理都是個人在以往項目經歷中用到的.
    如有相同純屬巧合.
    不同場合不同的方案有不同優勢.

     從<(no廢話)架構設計討論一>改過.原文太沒廢話,我開始吸取教訓.希望大家共同交流與學習.

     新文章更多資料更詳細內容.


設計背景:
    以.net爲設計背景

 

 資料整理:

     1.從零開始學習異常.瞭解與入門
     http://www.cnblogs.com/dawave/archive/2008/07/14/1242134.html

     2.更深入瞭解異常機制,和它的意義. 

     http://www.cnblogs.com/anderslly/archive/2007/03/14/understandingexception1.html

     3.Enterprise架構中, 及其中異常處理. 是一個很不錯的方案.
     http://www.cnblogs.com/jiangshaofen/archive/2007/12/11/990953.html

     4.Microsoft官方異常設計準則

     http://msdn.microsoft.com/zh-cn/library/ms229014.aspx

     5.<.net設計規範>第七章 - 人民郵電出版社 49$

     http://www.cnblogs.com/anderslly/archive/2007/03/15/675642.html

     更多解決方案.更詳細設計準則.


實踐項目方案一,  散佈式異常處理:
    異常處理層包括:
        [自定義異常接口],  接口包括必要的處理方法.例如HandleErrorEventArg之類
        [自定義異常],  這些異常必須繼承 [自定義異常接口],接口方法處理異常.
    [異常處理中心]:
        提供[DependenceProvider] (類似asp.net的MembershipProivder)

        之類處理寫日誌和等特殊安全性和特殊業務,事務要求,線程.
        [異常處理器],對繼承 [自定義異常接口]  [自定義異常] 進行統一調道
    在Global中OnApplicationError事件中(特例ASP.net中,winfrm相似):
        這裏可以集中在最後一層處理異常.對UI進行可控或非可控,可提示或非可提示處理
    業務邏輯層中的異常:
        對可知數據異常和異常處理中心的能異常的異常處理掉後,不能處理再往上拋,拋到UI層

實踐項目方案二,  集中式異常處理: 
    業務邏輯層中的異常:
        對可預知異常都進行處理,不能處理向上拋。
    [自定義異常]與異常層庫:
        [自定義異常]構造時完成處理
    面向服務的Service層 [異常處理中心] :
        對所有[自定義異常]集中式處理,處理後返回結果到所須的層.
        若不能處理的作系統異常.
        帶 [DependenceProvider] 之類

通常使用方案三, 原始處理:
    那裏出問題那裏處理,適合研發階段的開發

說在後:
    關於包裝異常,異常最內纔是根源。
    要對性能,可維護,進行綜合監控.

    注意異常處理中,集中處理會不會拋出更多異常.和異常性能問題.

討論線:
    對不同方案提出個人要點,以及指出出現不能處理的缺點.

    提供更多可參考資料

 

 

文章目錄:http://blog.csdn.net/linjiachenggz/archive/2008/09/01/2861617.aspx

 

TrackBack:http://blog.csdn.net/linjiachenggz/archive/2008/09/01/2861742.aspx
By :JacksonLin
Mail: [email protected]
原文有彩色,清晰一點
實現驅動編程!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章