`
- 浏览:
215193 次
- 性别:
- 来自:
海南
-
企业库异常处理块(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></configuration>下的<configsections></configsections>中添加必要的项目到你的app.config(Windows Forms)或web.config(ASP.NET程序)文件。
name="exceptionHandling"
type="Microsoft.Practices.
EnterpriseLibrary.
ExceptionHandling.
Configuration.
ExceptionHandlingSettings,
Microsoft.Practices.
EnterpriseLibrary.
ExceptionHandling" />
3、 如果随同异常处理一块使用日志记录,还需要在<configsections></configsections>中加入以下设置。
name="loggingConfiguration"
type="Microsoft.Practices.
EnterpriseLibrary.Logging.
Configuration.LoggingSettings,
Microsoft.Practices.
EnterpriseLibrary.Logging" />
4、 接下来,直接在<configuration></configuration>下添加<exceptionhandling></exceptionhandling>,在<exceptionhandling></exceptionhandling>之内,你可添加所有的异常处理策略,以下的代码,表示在<exceptionhandling></exceptionhandling>中指定了一个名为“Global Policy”的策略。
<exceptionhandling></exceptionhandling><exceptionpolicies></exceptionpolicies><add name="Global Policy"></add><exceptiontypes></exceptiontypes><add name="Exception"></add>type="System.Exception,
mscorlib, Version=2.0.0.0,
Culture=neutral,
PublicKeyToken=b77a5c561934e089"
postHandlingAction="None">
<exceptionhandlers></exceptionhandlers><add name="Application <br> Message Handler"></add>type="ExceptionMgmtBlockExample.
AppMessageExceptionHandler,
ExceptionMgmtBlockExample"/>
上述的设置指定了处理所有异常的一个策略。另外,使用<exceptionhandlers></exceptionhandlers>项,你可指定一个自定义的异常处理方法,其将以适当的方式处理异常。在这个例子中,自定义异常处理方法实现为一个名为AppMessageExceptionHandler的类,而在本文的后面部分,将会看到AppMessageExceptionHandler类具体的实现。属性postHandlingAction指定了处理基于策略的异常的行为,此属性可接受以下值:None、NotifyRethrow、ThrowNewException。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
深度挖掘.NET Framework 2.0(9):.NET 2.0对未处理异常的处理以及跟踪技巧
在全面介绍ASP.NET各种编程技能的同时重点介绍了ASP.NET 2.0版本中的巨大变化,详细阐述了ASP.NET 2.0中所包含的每个新特性。书中提供了大量的实例,可帮助读者快速掌握如何在.NET Framework下构建功能强大的ASP.NET...
Windows 10 2004版本离线安装.net2.0~3.5资源包
《ASP.NET 2.0 入门经典》将逐步引导您使用 ASP.NET 2.0 创建动态的、数据驱动的、复杂的Web站点。在本章结束时,我们将解释一些基本的想法并介绍一个完整的示例站点。然后将学习怎样使用 Visual Web Developer ...
内容代码,使用VB.net和C# 两种解释 <br>第1章ASP.NET2.0概述 1 1.1简史 1 1.2ASP.NET2.0的目标 2 1.2.1开发人员的效率 3 1.2.2管理 5 1.2.3性能和可伸缩性 8 1.3ASP.NET2.0的其他新特性 8 ...
MySql Data.dll .net2.0版本
在ASP.NET 2.0中操作数据:DataList和Repeater数据分页
通过探索这些项目的设计和代码,读者可快速掌握使用ASP.NET 2.0开发应用程序的技巧,从空白开始创建自己的网站,或在自己开发的网站中重用这些项目提供的功能。本书共分为12章,每章通过一个项目实现一种常见的网站...
原装的英文版Asp.net2.0 入门经典C#篇.避免了翻译后的质量下降
《ASP.NET 2.0 入门经典》将逐步引导您使用 ASP.NET 2.0 创建动态的、数据驱动的、复杂的Web站点。在本章结束时,我们将解释一些基本的想法并介绍一个完整的示例站点。然后将学习怎样使用 Visual Web Developer ...
ASP.NET 2.0动态网站开发基础教程(C#) 第01章 ASP.NET2.0基础 Framework Web Form(共32页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第02章 HTML和脚本语言 VBScript javaScript(共21页).ppt ASP.NET 2.0...
asp.net 2.0 网站开发全程解析 第2版
ASP.NET 2.0网络开发技术 ASP.NET 2.0类,对象和命名空间,电子书
内容涵盖VS 2005开发工具、SQL Server 2005安装管理策略与ASP.NET 2.0各种新功能,乃至于极度爆红的AJAX与Atlas Framework亦收录在本书之中,让您置身最顶尖的技术潮流。内容以专家级水平为基准点,透过精辟立论来...
Programming Microsoft ASP.NET 2.0 Applications - Advanced Topics
Windows 10 1909版本离线安装.net2.0~3.5资源包
ASP.net 2.0网络编程从入门到精通-修订.rar
内容涵盖VS 2005开发工具、SQL Server 2005安装管理策略与ASP.NET 2.0各种新功能,乃至于极度爆红的AJAX与Atlas Framework亦收录在本书之中,让您置身最顶尖的技术潮流。内容以专家级水平为基准点,透过精辟立论来...
内容涵盖VS 2005开发工具、SQL Server 2005安装管理策略与ASP.NET 2.0各种新功能,乃至于极度爆红的AJAX与Atlas Framework亦收录在本书之中,让您置身最顶尖的技术潮流。内容以专家级水平为基准点,透过精辟立论来...
接下来介绍了.NET中Web页面设计的基础知识和ASP.NET2.0服务器端控件的使用方法;作为ASP.NET数据库开发的准备内容,本书也介绍了些SQL语言的基础知识。此外,还介绍了ASP.NET中的常用对象、数据访问技术、数据源控件...