使用异常管理程序块来记录错误

ZDNet软件频道 时间:2003-09-02 作者:ZDNet China |  我要评论()
本文关键词:
错误处理(最近流行名称为异常管理)是最普通的程序开发任务之一,这是建立稳定程序的关键措施。现在,微软已经发布一种灵活的方法来记录你的异常错误,即为异常管理程序块(EMAB)。
本文译自Builder.com,未经许可请勿转载错误处理(最近流行名称为异常管理)是最普通的程序开发任务之一,这是建立稳定程序的关键措施。但是,当一个错误出现时,该采取什么样的方法?实际上,你可以以一种很合理的方式来处理这些异常错误。你也可以将这些错误记录下来,以防止以后的这些错误的出现。记录异常错误实际上就是把它们写入一个文本文件,事件日志,或者一个数据库。但是现在,微软已经发布一种灵活的方法来记录你的异常错误,即为异常管理程序块(EMAB)。

EMAB的特性

EMAB的作用就是异常的自动记录。为了达到这一功能,EMAB包含了很多特性,比如:

  • 单行的异常记录;
  • 不用编译程序就可以打开或关闭EMAB;
  • 记录所有错误来源的功能;
  • 不用编译程序就可以改变记录特性;
  • 访问EMAB源代码。

EMAB提供了记录程序中异常的兼容性很好的方法。事实上,它的主要意义是使很多普通的任务自动操作,并帮助程序中的操作标准化。除了EMAB,微软还建立了一个数据库访问程序块。

使用EMAB

EMAB其中一个与众不同之处是微软把它集成在包括VB.NET和C#的Visual Studio .NET中,所以你可以随意地访问源代码(本文章采用的是VB.NET版本)。EMAB中,微软没有将代码编译,所以你必须先将代码进行编译。

下载EMAB之后,运行MSI文件以安装程序块,然后打开项目。如果你使用的是Visual Studio .NET 2003,你将会收到一则关于项目更新的消息。但是,在VS.NET 2003中EMAB运行得比较好。

建立方法之后,下面一步就是建立一个新的VB.NET窗口程序并将它命为EmabTest。通过在方法浏览窗口中的相关节点上点击右键来设置EMAB的引用。在.NET标签中,点击浏览按钮并查看包含安装DLL的目录。缺省的安装路径为:

C:Program FilesMicrosoft Application Blocks for .NETException ManagementCodeVB
Microsoft.ApplicationBlocks.ExceptionManagementin
Microsoft.ApplicationBlocks.ExceptionManagement.dll.

在窗体中添加一个按钮并查看代码窗口。接着,添加以下的输入口命令到代码窗口的顶端:

Imports Microsoft.ApplicationBlocks.ExceptionManagement

现在,在Button1_Click sub中添加如下的代码:

Dim x, y As Integer
Try
x = 5 / y
Catch ex As Exception
ExceptionManager.Publish(ex)
End Try


这些代码说明使用EMAB可以提高程序的简单性。代码中,5将0整数,VB.NET在缺省情况下为0,代码即生成了一个OverFlowException异常,因为它使用的是标准的分隔符(/)。当代码生成一个异常,就运行catch块,然后就记录异常错误到程序的日志文件。

运行这一程序并点击按钮。打开事件查看器并检查程序的日志文件。正如你在图A中可以看到的,由于溢出异常,一个入口点已经被添加。日志入口包含很多有用的信息。图A显示了异常信息的起始。

A


关于代码请注意两点。第一,ExceptionManager对象中的publish方法在没有启动对象的情况下就被调用。Publish方法能够被调用是因为它在程序处于被共享的状态。第二,错误可以自动在事件日志中得到记录。EMAB用缺省的出版位置,但你也可以编写自定义的出版人。自定义的出版人允许你编写一个文本文件,记录到一个数据库,发送一个e-mail,或者其他。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134