欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    通用异常处理框架(共5页).doc

    • 资源ID:17076786       资源大小:16.50KB        全文页数:5页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    通用异常处理框架(共5页).doc

    精选优质文档-倾情为你奉上通用异常处理框架 通用异常处理框架(转载)通用异常处理框架【摘要】 异常捕捉、处理是每个项目中必不可少的一部分,利用反射和XML配置技术实现一个通用的、灵活的、可配置的、高度可自扩展的异常处理框架对项目的整体健壮性以及异常处理效率都是非常重要的。通用异常处理框架中需要提供配置信息的支持以及统一的异常处理类和异常日志记录类管理,并允许用户以插件形式扩展自定义的异常处理或日志记录方式。一、 问题的提出由于异常处理在项目中的普遍性,我们会很自然的想到是否可以对异常处理模块进行提取为公用模块,加强项目间的复用,提高项目的开发进度。并且在异常处理中,因为没有良好的异常处理系统可能造成一些问题:l 若异常处理方式不当,容易造成比较严重的性能问题。l 在项目开发阶段,开发人员需要得到完整的异常错误信息方便分析BUG;在项目发布阶段,用户希望看到的是比较友好的错误信息。一个良好的异常处理系统应能够通过简单的配置方便的达到这样的效果l 异常处理系统应该能够提供足够的信息方便开发人员对BUG异常的准确定位,减少查找BUG产生原因的时间。(该问题在自己的项目中有过深刻教训:因项目中异常信息的不准确,导致一个BUG消耗大量人力时间)l 一个项目中各层对异常处理的方式不同,可能会不同的层编写不同的代码,造成代码使用麻烦以及复用性低,若需修改,可能改动较大。(例如PDM项目中,除UI层外,都是对异常进行包装后抛给上一层捕捉;而UI层需要处理记录异常,并反馈给用户;即便是UI层也应WebUI和WinUI采用的不同的方式实现,提供给项目的接口也都有一定区别,增加了编码的复杂程度)l 异常报告信息没有统一管理。很多项目中报告给用户的错误消息,都是程序员在开发中自己编写的,对用户而言,常常不是有效的友好的提示信息。集中管理后可以由BA来进行错误信息的整理,改善用户体验。l 异常记录方式可能会在不同环境有不同的处理,应该能通过配置文件简单的实现,而不必每次为不同的应用编写代码。l 要把异常系统做成一个通用的框架,存在一个比较大的挑战:不同的项目可能因项目的整体构架不同,对异常处理方式会有不同的需求,如何保持通用异常处理框架的灵活性的同时实现复用以及可配置性。二、解决思路为了最大程度实现异常处理框架的通用性、可扩展性以及可配置性,采用配置文件结合动态加载插件的方式:框架提供接口,由不同项目根据自己的需要实现接口,完成对异常的处理,以及异常日志的记录;而框架再根据配置信息决定异常处理在不同的情况下的处理策略,并通过调用用户实现的接口来完成异常处理过程。整个异常处理过程对项目调用高度封装,项目中不论任何地方,只需调用一个唯一的接口,框架就会根据配置信息执行需要的异常处理。三、实践情况整体结构框架主要由ExManagement.Config、ExManagement.Interface、ExManagement.MessageHandler以及ExManagement构成。如图:三-1 u ExManagement.Config:用于从配置文件中获取配置信息,并将配置信息转换为一个配置信息实体对象,提供给框架的其他部分使用。u ExManagement.Interface:提供异常处理类、异常日志记录类以及异常错误报告类的接口和基类,便于用户在框架的基础上进行自定义的扩展u ExManagement.MessageHandler:对ExManagement.Interface中的IMessage接口实现,提供了WebUI和WinUI下的弹出错误信息提示的支持。也可以直接编写一个满足IMessage接口的包,以自己需要的方式弹出错误提示信息。u ExManagement:是控制和管理框架按照配置信息进行处理的控制类。首先根据异常处理配置加载需要的异常处理类和日志记录类,再按照配置信息内容对异常进行处理。并提供唯一的接口供项目调用。u ExManagement.Handler:默认的异常处理包,包含了一种对异常处理的具体实现。用户也可以继承ExManagement.Interface中的ExHandlerBase基类,实现自定义的异常处理类,并通过修改配置文件让框架调用。u ExManagement.LogHandler:默认日志记录包,包含一种将异常日志记录到数据库的具体实现。用户也可以实现ExManagement.Interface中的ILogHandler接口,实现自定义的异常处理类,并通过修改配置文件让框架调用。 图三-1ExManagement.Config包该包主要由两部分组成:实现System.Configuration.IConfigurationSectionHandler接口的ExSectionHandler类和配置信息实体类ExManagerConfig。如图三-2。 ExManagerConfig类中又定义了3个嵌入类:ExHandlerConfig、LogHandlerConfig、LogHandlerConfigCollection以及三个枚举ExAlertType、ErrorCodeSource、ExReturnMode。ExManagerConfig、ExHandlerConfig、LogHandlerConfig分别对应配置文件中的、节点。ExManagerConfig是一个集合类,从System.Collections.CollectionBase继承,包含若干个ExHandlerConfig对象,并通过索引器访问包含的ExHandlerConfig对象,支持以int和string两种方式索引。 ExHandlerConfig中除了包含对应节的属性外,还包含一个LogHandlerConfigCollection对象,是LogHandler类的集合类。图三-2 ExSectionHandler类从配置文件中按照固定的格式获取到相应的配置信息,并将信息填充到ExManagerConfig。 配置文件<configuration> <configSections> <section name="ExManager" type="ExManagement.Config.ExSectionHandler, ExManagement.Config" /> < SPAN>configSections> <ExManager ErrorCodeSource="XML/DB" ConnectionString="" DataTable=""> <ExHandler Name="" Type="" ReturnMode="" AlertType="WebUI/WinUI/None"/> <ExHandler Name="" Type="" ReturnMode="" AlertType=""> <LogHandler Type="" ConnectionString="" DataTable=""/> <LogHandler Type="" ConnectionString="" DataTable=""/> < SPAN>ExHandler> < SPAN>ExManager>< SPAN>configuration>专心-专注-专业

    注意事项

    本文(通用异常处理框架(共5页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开