`

.NET 2.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></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 &lt;br&gt; Message Handler"></add>type="ExceptionMgmtBlockExample. AppMessageExceptionHandler, ExceptionMgmtBlockExample"/> 上述的设置指定了处理所有异常的一个策略。另外,使用<exceptionhandlers></exceptionhandlers>项,你可指定一个自定义的异常处理方法,其将以适当的方式处理异常。在这个例子中,自定义异常处理方法实现为一个名为AppMessageExceptionHandler的类,而在本文的后面部分,将会看到AppMessageExceptionHandler类具体的实现。属性postHandlingAction指定了处理基于策略的异常的行为,此属性可接受以下值:None、NotifyRethrow、ThrowNewException。
分享到:
评论

相关推荐

    微软.Net2.0企业库的WebForm和WinForm的配置方法.zip

    总之,.NET 2.0企业库为WebForm和WinForm应用提供了丰富的功能和灵活的配置选项,通过合理的配置,可以极大地提高开发效率和代码的可维护性。理解并熟练掌握这些配置方法,对于提升.NET开发的专业技能至关重要。

    .net企业库中数据库操作封装

    在.NET开发环境中,企业库(Enterprise Library)是一个强大的工具集,它由Microsoft提供,用于解决常见的应用程序开发问题,特别是涉及到数据库操作的部分。本知识点将深入探讨如何在企业库中进行数据库操作的封装...

    企业程序库2.0介绍

    **企业程序库2.0** 是一套开源的、可复用的软件组件,主要用于解决企业级应用程序开发中常见的问题。这个库由多个模块组成,旨在提高软件的一致性、扩展性、易用性和集成能力。它最初是为 .NET Framework 1.1 设计的...

    仓库管理系统V2.0源码 c# .net

    6. **异常处理**:C#提供了强大的异常处理机制,通过try-catch-finally语句块,可以捕获和处理运行时可能出现的错误,保证了程序的稳定运行。 7. **多线程**:在并发环境中,多线程技术能够提高程序的执行效率。...

    C#中企业库及其使用方法

    在2.0版本中,企业库主要关注于数据访问、日志记录、验证和缓存管理等方面。其中,数据访问应用块(Data Access Application Block, DAAB)提供了一种抽象层,可以简化对数据库的操作,支持多种数据库平台,如SQL ...

    2004年11月18日 使用应用程序块创建.NET应用_PPT

    1. **企业库(Enterprise Library)**:微软为企业级.NET开发提供的一个框架,包含了数据访问、配置、异常处理、日志记录、验证等多个应用程序块。 2. **应用程序块的优势**:提高代码重用性,减少重复工作,提高...

    微软企业库5.0【EnterpriseLibrary5.0 – May2011】

    微软企业库5.0是该系列的一个重要版本,发布于2011年5月,它为.NET Framework提供了强大的应用程序基础架构服务。 该库主要由以下几个核心组件构成: 1. **数据访问应用块(Data Access Application Block)**:...

    亮剑.NET深入体验与实战精要2

    1.6.5 错误异常处理方法 70 本章常见技术面试题 76 常见面试技巧之面试前的准备 76 本章小结 77 第2章 细节决定成败 79 2.1 Equals()和运算符==的区别 80 2.2 const和readonly的区别 82 2.3 private、protected、...

    ENTERPRISE LIBRARY2.0

    3. **数据访问**: 在这个版本中,企业库提供了数据访问应用块(Data Access Application Block),它简化了ADO.NET的使用,提供了数据库连接的管理、事务处理和错误处理等功能,降低了数据访问层的复杂性。...

    企业库Enterprise Library 4.0 - May 2008.zip

    2. **异常处理应用块(Exception Handling Application Block)**:提供了一种统一的异常管理机制,有助于处理和报告应用程序中的错误,同时保持代码的整洁和可读性。 3. **配置应用块(Configuration Application ...

    企业库技巧

    这个主题主要围绕Microsoft的企业库(Enterprise Library),这是一个强大的应用程序框架,它提供了多种可重用的软件组件,帮助简化常见的编程任务,如数据访问、日志记录、异常处理和配置管理。 Enterprise ...

    牛人写的Enterprise Library2.0最新整理教程

    Enterprise Library是微软 Patterns & Practices 团队开发的一个开源软件库,它为.NET Framework应用程序提供了常见企业级编程任务的可重用、可配置的代码组件。这个"牛人写的Enterprise Library2.0最新整理教程"很...

    亮剑.NET深入体验与实战精要3

    1.6.5 错误异常处理方法 70 本章常见技术面试题 76 常见面试技巧之面试前的准备 76 本章小结 77 第2章 细节决定成败 79 2.1 Equals()和运算符==的区别 80 2.2 const和readonly的区别 82 2.3 private、protected、...

    Aop.NET基础.ppt

    2. **Unity2.0**:企业库中包含的轻量级依赖注入框架,支持AOP特性。 3. **EmitIL**:通过动态生成IL代码来实现AOP功能。 #### 七、.NET中的AOP实现案例 以**Spring.NET**为例,介绍如何利用Spring.NET框架实现AOP...

    完全手册:.C#.2.0程序设计详解电子教程.rar

    在实际编程中,还需要了解如何使用.NET Framework库,这是C#开发的重要组成部分,提供了大量的类和功能供开发者使用。 至于文档中提到的考核标准和方法,虽然与C#编程无关,但它们提供了一种组织和评估员工绩效的...

    C#获取的企业微信的用户身份

    可以使用try-catch块来捕获可能出现的异常,同时对API调用进行适当的延迟或重试策略。对于敏感信息,如AppID和AppSecret,应妥善保管,避免明文存储。 此外,如果你的项目需要实现更多的功能,如消息推送、事件响应...

    Enterprise Library

    - **异常处理应用程序块**:提供异常处理机制。 - **安全应用程序块**:支持身份验证和授权。 - **日志应用程序块**:记录应用程序运行时的信息。 - **验证应用程序块**:帮助验证输入数据的有效性。 - **策略...

    c# 入门经典教程新手必备

    它负责内存管理、线程调度、安全性、异常处理等核心服务。所有遵循CLR的语言,如C#、VB.NET、C++/CLI等,其编译后的代码都将被转换为中间语言(IL)。 5. .NET框架类库(FCL) FCL是微软提供的大量预编写的、受...

Global site tag (gtag.js) - Google Analytics