注册通行证 用户名 密码
  • 文章投稿
  • 博客
  • 论坛
  • 设为首页
  • 加入收藏
jztop.com网络技术
  • 首页
  • | iT新闻
  • | 操作系统
  • | 组网建网
  • | 网络安全
  • | 程序开发
  • | 办公一族
  • | 工具软件
  • | 网页制作
  • | 多媒体制作
  • | 网吧技术
  • | 服务器
  • | 专题教程
Vista | 软件评测 | 系统备份 | 优化 | 进程 | 聊天 | 病毒 | Linux | 黑客 | 防火墙 | 数据库 | Web开发 | Java | Word | 游戏 | 32位开发 | 移动开发
当前位置:首页 > 程序开发 > 微软开发专栏 > ASP.NET 内容正文:.NET 2.0中的企业库异常处理块简述

.NET 2.0中的企业库异常处理块简述

发布时间:2006-06-23 12:55:27 来源:天极开发 网友评论 0 条
  企业库异常处理块(Enterprise Library Exception Handling Block)提供了处理异常所需的所有基本代码,现在,你可以不用再编写这些重复性的异常处理代码,只需简单地在程序中使用它们,就可保证一致且高效地异常处理。

  在一个理想的程序世界中,编写的所有代码都是运行无误的,但现实是,无论你在编写代码时多么地小心,错误总会发生,所以,必须要有一个高效、可配置的框架(framework),以一种"优雅"方式来处理错误;另外,也必须要懂得,人们通常以对程序的用户体验带来多大影响,来衡量一种异常处理的有效性。因此,一个好的异常处理解决方案不单是从用户的观点"优雅"地处理错误,而且还可通过开发者或系统管理员以可配置的错误处理行为,提供健壮的配置设定,这也是异常处理块的关键组成部分。

  与Enterprise Library 2.0一同到来的是崭新的异常处理应用程序块,自从老的异常管理应用程序块发布以来,其经过了巨大的改进,可从MSDN下载EntLib Caching Block获得。为有效地使用,你必须接受以下三个主要观点:

  ·异常处理是在你的代码探测到有异常发生时,处理异常的一个过程。

  ·异常日志记录是记录一个异常的过程,其包括发送格式化异常到事件记录器或发送一封E-mail,而异常处理块则利用了日志记录和事件记录。

  ·异常处理策略允许你控制异常处理和使用外部配置文件记录的行为,这样就的好处是,现在不用在代码中实施这样的规则了,换句话来说,你可在一个策略文件中定义异常处理,然后,在不改变代码的情况下,在测试、调试、产品定型期间修改行为以适应不同的异常处理需要。

  另外,使用异常处理块,在探测到异常时,可做以下三件事情:

  ·你可把异常包装为一个新的异常,并加入新的上下文信息或错误详细信息。当新的异常传递到调用堆栈时,仍可通过InnerException属性访问到原始的异常。

  ·你可用一个新的异常取代原有异常。一般来说,这样做的目的,是不想让原始异常的详细信息传递出程序。

  ·你可以记录异常。当然,也可结合使用包装或取代的方法来达到此目的,或者,你可以记录原始异常并把它传递到调用堆栈。

  使用异常处理块

  在安装完企业库(Enterprise Library)之后,就可利用异常处理块开始编写代码了,为正确使用异常处理块,请遵循以下步骤:

  1、在你的解决方案中分别添加一个对Microsoft.Practices.EnterpriseLibrary.Common.dll和Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll程序集的引用,可使用"添加引用"选项,并定位到X:/Program Files/Microsoft Enterprise Library January 2006/bin文件夹,如果还想使用异常处理日志记录,请再添加一个对Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.dll的引用。

  2、像如下所示,在根<configuration>下的<configSections>中添加必要的项目到你的app.config(Windows Forms)或web.config(ASP.NET程序)文件。

<section
name="exceptionHandling"
type="Microsoft.Practices.
EnterpriseLibrary.
ExceptionHandling.
Configuration.
ExceptionHandlingSettings,
Microsoft.Practices.
EnterpriseLibrary.
ExceptionHandling" />

  3、如果随同异常处理一块使用日志记录,还需要在<configSections>中加入以下设置。

<section
name="loggingConfiguration"
type="Microsoft.Practices.
EnterpriseLibrary.Logging.
Configuration.LoggingSettings,
Microsoft.Practices.
EnterpriseLibrary.Logging" />

  4、接下来,直接在<configuration>下添加<exceptionHandling>,在<exceptionHandling>之内,你可添加所有的异常处理策略,以下的代码,表示在<exceptionHandling>中指定了一个名为"Global Policy"的策略。

<exceptionHandling>
<exceptionPolicies>
<add name="Global Policy">
<exceptionTypes>
<add name="Exception"
type="System.Exception,
mscorlib, Version=2.0.0.0,
Culture=neutral,
PublicKeyToken=b77a5c561934e089"
postHandlingAction="None">
<exceptionHandlers>
<add name="Application
Message Handler"
type="ExceptionMgmtBlockExample.
AppMessageExceptionHandler,
ExceptionMgmtBlockExample"/>
</exceptionHandlers>
</add>
</exceptionTypes>
</add>
</exceptionPolicies>
</exceptionHandling>

  上述的设置指定了处理所有异常的一个策略。另外,使用<exceptionHandlers>项,你可指定一个自定义的异常处理方法,其将以适当的方式处理异常。在这个例子中,自定义异常处理方法实现为一个名为AppMessageExceptionHandler的类,而在本文的后面部分,将会看到AppMessageExceptionHandler类具体的实现。属性postHandlingAction指定了处理基于策略的异常的行为,此属性可接受以下值:None、NotifyRethrow、ThrowNewException。

  添加这些设置最简单的方法就是使用企业库中的企业库配置工具(Enterprise Library Configuration Tool),在企业库配置工具中,上述设置如图1所示。

点击放大此图片
图1

  5、 在你的工程中引入异常处理块的核心命名空间"Microsoft.Practices.EnterpriseLibrary.ExceptionHandling"。

  6、 现在,就可使用上述命名空间中的类编写代码了。
相关文章
  • 用ASP.NET 2.0设计网络在线投票系统
  • ASP.NET 2.0中创建内容页
  • ASP.NET 2.0中XSLT的使用
  • ASP.NET 2.0 中的母版页详解
  • ASP.NET 2.0的页面缓存功能介绍
【评论】【收藏本文】【打印】【关闭】
上一篇文章:用VB.NET为智能设备编写半自动初始化类
下一篇文章:关于.NET动态代理的介绍和应用简介
讨论区
查看
已有 0 位对此新闻感兴趣的网友发表了看法
匿名发表
注册通行证 登陆
图文阅读推荐
推荐阅讯
  • ASP.NET 2.0的新增服务、控件与功能
  • ASP.NET程序中实现校验码图像生成
  • 当ASP.NET撞上JSF之框架比较
  • ASP.NET2.0数据操作之创建业务逻辑层
  • 迁移你的Web页面到ASP.NET AJAX 1.0
  • ASP.NET 2.0 中的异步页功能应用
  • ASP.NET 2.0中实现跨页面提交
  • .NET 2.0 SqlDependency快速上手指南
  • ASP.NET2.0数据操作之创建数据访问层
  • 让ASP.NET简便使用SCRIPT
阅读排行
  • 1.用ASP.NET 2.0设计网络在线投票系统
  • 2.在ASP.Net 2.0中实现多语言界面的方法
  • 3.轻松加密ASP.NET 2.0 Web程序配置信息
  • 4.在ASP.NET中使用AJAX的简单方法
  • 5..NET 2.0中的企业库异常处理块简述
  • 6.面向.NET开发人员的Ajax 技术平台策略
  • 7.揭开ASP.NET中Cookie编程的奥秘
  • 8.ASP.NET2.0服务器控件之创建自定义控件
  • 9.ASP.NET2.0中Gridview中数据操作技巧
  • 10.ASP.NET 2.0发送电子邮件全面剖析之二
专题教程
  • 大话G游 专题:手机病毒揭密
  • ARP攻击防范与解决方案 路由故障处理手册
  • Picasa中文版_Picasa教程 专题:清除流氓软件
  • Firefox专题 seo搜索引擎优化专区
  • 重装Windows必知的事情 装机之必备软件大行动
病毒专杀栏
  • 杀毒软件反被病毒杀 连"救命"都不能喊
  • 金山ARP防火墙
  • 还原卡神话破灭“机器狗”病毒来势汹汹
  • cctv经济半小时:你的手机现在安全吗?
  • 新挂马方式开始流行 ARP挂马称雄局域网
  • 木马和病毒清除的通用解法
  • IP地址不再冲突 查找ARP攻击者元凶
  • 教你几招识别和防御Web网页木马
  • 分析:封杀BT只是暂时的止痛药
  • QQ爆危险漏洞,“QQ游戏邀请大盗”邀请你玩病
关于我们 | 诚聘英才 | 联系我们 | 版权声明 | 网站大事 | 网站地图 | 意见建议
CopyRight 2005-2007 Jztop.Com 版权所有 未经许可 请勿转载