异常处理总结 (资料不断整理与收集)

说在前:
    本文描述的异常处理都是个人在以往项目经历中用到的.
    如有相同纯属巧合.
    不同场合不同的方案有不同优势.

     从<(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://www.cnblogs.com/JacksonLin/archive/2008/07/09/1219021.html


By :JacksonLin
Mail: linstreammx@163.com
Trackback:http://www.cnblogs.com/JacksonLin/archive/2008/07/13/1241781.html
原文有彩色,清晰一点
实现驱动编程!

posted @ 2008-07-24 10:20  JacksonLin  阅读(8522)  评论(5编辑  收藏  举报