开发者社区


C++/C | Java | .Net/Windows | Linux/Unix | 开源 | 其他
首页 - 编程
编程
全文搜索:   

如何在.NET程序中使用异常处理模块
作者: Tony Patton
2006-09-20 15:30:17


作为一名程序开发员,我的时间是有限的,所以任何能够节约时间的事情都非常有价值。从这方面来说,我是微软企业库的忠实粉丝。毕竟,谁会拒绝免费的代码呢?在以前的专栏中,我阐述了有关通过企业库进行登录的问题。今天,我将阐述如何在.NET程序中使用Exception Handling Block处理异常。

异常处理

异常处理是.NET Framework的一个重要特征,它可以处理基于.NET程序运行时出现的问题。毕竟,它能更好地避免由.NET产生的默认错误信息。另外,如果问题发生,敏感信息或代码将被显示出来,而这些默认的错误信息将有可能成为安全漏洞。通常情况下,错误信息揭示了某些代码细节,而这些细节可能被怀有恶意的人所利用。

异常处理是反反复复的。也就是说,处理异常的相同方法被一遍又一遍的重复使用。目前,处理普通异常已经有一些固定模式。而Exception Handling Block可以提供可靠的方法处理代码异常。

企业库

企业库是由微软通过测试后的实例构建的程序库。它允许在程序中使用可靠的异常处理。异常处理可根据项目的要求而进行简单化或复杂化调整。它包含配置工具,可以定义异常策略,可以指定如何处理异常(特殊的异常类型可采用不同的方法处理)。

企业库包含安装的一些基本功能。包括登录、将一个异常封装到另一个异常类型、用一个异常替代另一个异常。它也允许创建自定义设置。所有的这些选项都是通过企业库的配置工具进行设置。

使用异常处理模块

使用异常处理模块的第一步则是在项目的动态链接库(DLL)中添加一个参考。这与添加其他DLL没有什么不同——仅仅是简单地选择“添加参考”,然后在系统中定位DLL。参考一旦被添加,则在C#下面的代码文件中包含了这个参考:

usingMicrosoft.Practices.EnterpriseLibrary.ExceptionHandling;

这里是VB.NET的用法:

Imports Microsoft.Practices.EnterpriseLibrary.ExceptionHandling

当在程序中添加了参考后,则使用“添加/配置异常政策”为程序进行配置。所以,打开配置工具,然后从“文件”菜单中选择“打开程序”。为程序查找config文件(Windows程序是app.config 文件,ASP.NET 程序是web.config 文件等等),此时,在程序的config文件中添加和保存模块的配置信息。

举个例子:我现在有个ASP.NET程序,配置异常处理一般的异常、casting和null参考异常。这些信息通过配置文件进行保存,但是条目都添加到程序的配置文件中(在本例中,因为是Web 程序,所以是在web.config文件中)。表A中代码被添加到web.config文件中。

第一行是主节点——enterpriselibrary.configurationSettings——它包含了“applicationName”属性,这一属性与配置程序中指定的名称一致。这就告诉系统使用何种异常处理政策。一旦所有的东西都配置好,则必须添加一个或多个异常策略,它可能在你的代码中被使用到。表B中简单的C#“try/catch”模块捕获一个异常,并且使用“if”语句来确定这个已经产生的异常是否在策略指定的类型中已有定义(“Policy Name”参数)。(表C包含了同等的VB.NET 代码)

请注意:当异常与政策定义匹配时,则使用一个“throw”语句。微软称使用这个“throw”语句而不使用“throw ex”非常重要。如果使用“throw ex”,那么异常的堆栈痕迹则会被在“re-throw”点开始的堆栈痕迹所代替。

结论

Exception Handling Block超越了以前的异常处理方法。它将异常管理和异常策略结合在一起,共同为异常管理提供了全方位的功能。使用这些方法,可以捕获、警示或忽略各种异常。

责任编辑:张琎

查看原文国际来源

声明:
Builder.com.cn(原ZDNet China应用开发频道)原创文章版权所有,未经许可严禁转载,且不构成投资建议。
近期相关报道:
实用技术文档
J2me XML
C/C++ C#
Java Oracle
Mysql .Net
VB.NET CSS
SQL Server 数据库
SQL UNIX
Linux Jsp
PHP Perl
Javascript IIS
XHTML ColdFusion
ASP/ASP.NET Apache
AJAX
订阅技术邮件
订阅"技术圈"杂志!请在下面选择您感兴趣的专题,填写e-mail地址,然后按订阅按钮:
应用开发管理
VS.NET 周刊
Database 周刊
WEB Service周刊
JAVA 周刊
IT 认证
Windows服务器周刊
互联网开发
当Windows Server 2008专家得5000元现金大奖
CNET NETWORKS 中国: 爱卡汽车网 | CNET科技资讯网 | e询网 | CWEEK | 蜂鸟网 | GameSpot China | 个人电脑 | PChome | SPN | 网友世界 | ZDNet China | 中关村在线
CNET NETWORKS 美国: BNET | CNET.com | CNET Download.com | CNET News.com | CNET Reviews | CNET Shopper.com | GameSpot | MP3.com | mySimon | Release 1.0 | Search.com | TechRepublic | TV.com | Webshots | ZDNet
Copyright (c) 2006 CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
ZDNet 公司标识是 CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号