























此文档维护在:http://wiki.entlib.net.cn/EntlibHelp31ExceptionHandlingApplicationBlock.ashx。
本主题描述了如何使用异常处理应用程序块开发应用程序。它首先解释了如何在应用程序中引用应用程序块并且配置它。然后,在关键场景中,它描述了用于应用程 序的异常处理策略,并且解释了如何根据特定场景,如记录日志和传播异常,使用应用程序块。最后,在开发任务的细节中,它解释了如何开发异常处理策略,以及 如何发送异常到应用程序块。
所有应用程序块都发布为源代码,在快速入门和配置工具被使用之前必须编译它们。要学习如何编译 Enterprise Library 源代码,请参见生成 Enterprise Library。
这些过程解释了如何配置异常处理应用程序块,与出现在右面板中的节点相关的属性。
添加异常处理应用程序块
配置异常处理策略
配置异常处理程序
在添加异常的异常处理程序后,可以配置它。这些过程解释了如何配置自定义的、记录日志的、替换和包装异常处理程序。
配置定制的异常处理程序
要配置一个日志异常处理程序,单击 Logging Handler 节点,然后输入下面这些显示在右面板中的值:
要配置一个替换处理程序,单击 Replace Handler 节点,然后输入下列显示在右面板中的值:
要配置一个包装处理程序,单击 Wrap Handler 节点然后输入下面显示在右面板中的值:
本主题列出了用于异常处理应用程序块的 XML 元素和属性。可以手工编辑这些 XML 数据,但是 Enterprise Library 配置控制台极大的简化了此任务。如果选择手工编辑 XML ,请使用包含在本主题中的模式信息。
配置文件中有下面的节处理程序声明。
<configSections>
<section name="exceptionHandling"
type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration.ExceptionHandlingSettings,
Microsoft.Practices.EnterpriseLibrary.ExceptionHandling,
Version=3.1.0.0,
Culture=neutral,
PublicKeyToken=null" />
</configSections>
节处理程序场景包括配置设置节的名称和处理在那节中配置数据的节处理程序类名。配置设置节的名称是 exceptionHandling。节处理程序类名是 ExceptionHandlingSettings 。此类包含在 Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration 命名空间中。
exceptionHandling 元素
exceptionHandling 元素描述了异常应用程序块的配置。此元素是必须的。
属性和子元素
下面这些节描述了 exceptionHandling 元素的属性和子元素。
exceptionPolicies 子元素
exceptionPolicies 元素是 exceptionHandling 元素的子元素。它列出了应用程序可以调用的异常策略。此元素是可选的。
add 子元素
add 元素是 exceptionPolicies 元素的子元素。add 元素添加异常策略的名称。此元素是可选的,可以有多个 add 元素。
属性
表 1 列出了 add 元素的属性。
| 属性 | 描述 |
|---|---|
| name | 异常策略的名称。名称在节中必须是唯一的,此属性是必须的。 |
exceptionTypes 子元素
exceptionTypes 元素是 add 元素的子元素。它列出了可以被异常策略处理的异常类型。此属性是可选的。
add 子元素
add 元素是 exceptionTypes 元素的子元素,add 元素添加异常类型的名称。此元素是可选的,可以有多个 add 元素。
属性
表 2 列出了 add 元素的属性。
| 属性 | 描述 |
|---|---|
| name | 异常类型的名称。名称在节中必须是唯一的,此属性是必须的。 |
| type | 派生自 Exception 类的类名,此属性是必须的。 |
| postHandlingAction | 指定在调用异常处理程序后将进行什么异常策略。可能的值是 None、NotifyRethrow 和 ThrowNewException。此属性是必须的。 |
exceptionHandlers 子元素
exceptionHandlers 元素是 add 元素的子元素,它指定了一个异常处理程序,此元素是必须的。
add 子元素
add 元素是 exceptionHandlers 元素的一个子元素。add 元素添加异常类型的名称。此元素是可选的,可以有多个 add 元素。
属性
表 3 列出了用于 add 元素的属性。
| 属性 | 描述 |
|---|---|
| name | 异常处理程序的名称。名称必须在节中是唯一的。此属性是必须的。 |
| type | 实现了 IExceptionHandler 接口的类的名称。此属性是必须的。 |
| exceptionMessage | 由异常使用的消息。此属性用于 WrapHandler 类和 ReplaceHandler ,它是必须的。 |
| wrapExceptionType | 包装原始异常的异常类型。它必须有一个派生自 Exception 类的类名。此属性和 WrapHandler 类一起使用,并且是必须的。 |
| replaceExceptionType | 替换原始异常的异常类型。它必须有一个派生自 Exception 类的类名。此属性和 ReplaceHandler 类一起使用,并且是必须的。 |
| logCategory | 记录异常消息日志的分类。此属性是一个字符串。它与 LoggingExceptionHandler 一起使用,并且是必须的。 |
| eventId | 异常的 ID 数量。此属性是一个整数。它与 LoggingExceptionHandler一起使用,并且是必须的。 |
| severity | 异常的严重程序。此属性是 TraceEventType 枚举类型的。它与 LoggingExceptionHandler 类一起使用,并且是必须的。 |
| title | 日志条目的标题。此属性是一个字符串。它与 LoggingExceptionHandler 类一起使用,并且是必须的。 |
| formatterType | 在异常被记录日志前格式化异常消息的格式化程序。它必须是一个派生自 ExceptionFormatter 类的类名。它与 LoggingExceptionHandler 类一起使用,并且是必须的。 |
| priority | 日志条目的优先级。此属性是一个整数。它与 LoggingExceptionHandler 类一起使用,并且是必须的。 |
异常处理应用程序块被设计以支持绝大多数处理异常的常见场景。在添加应用程序代码时,参考在关键场景中的场景,然后选择最适合的情况。使用展示在这里的完成场景的代码,或者按需要适配它。
准备应用程序以使用异常处理应用程序块
C#
using Microsoft.Practices.EnterpriseLibrary.ExceptionHandling;
Visual Basic
Imports Microsoft.Practices.EnterpriseLibrary.ExceptionHandling
注意:对于 Visual Basic 项目,可以使用项目设计器的引用页来管理引用和导入命名空间。要访问引用页,在解决方案浏览器中选择项目节点,在项目菜单中单击属性。在项目设计器出现时,单击引用标签。
下一步,添加应用程序代码。通常,使用异常处理应用程序块的代码必须完成下列步骤:
在此节中的示例展示了如何将这些步骤合并到应用程序中去。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。