Yesky首页| 产品报价| 行情| 手机 | 数码 | 笔记本 | 台式机 | DIY硬件 | 外设 | 网络 | 数字家庭 | 评测 | 软件 | e时代 | 游戏 | 图片 | 壁纸 | 群乐 | 社区 | 博客 | 下载
软件频道>开发者网络>微软开发专栏>ASP.NETC#VB.NETVC.NET技术专题XML|软件频道产品中心群乐下载群乐:大家耍QQ
您现在的位置: 天极网 > 开发频道 > 微软开发专栏 > 在VB 2005中定制自己的异常
全文

在VB 2005中定制自己的异常

2006-04-24 10:39 作者: 朱先忠编译 出处: 天极开发 责任编辑:>方舟
  提要 本文在简要分析VB 2005所提供的异常处理机制的同时,详细讨论如何用它所提供的异常类定制自己的异常。

  结构化异常处理是随着.NET的第一个版本的发行而加入到Visual Basic语言中的。结构化异常处理的重要性基于下面两个原因:

  1. 与以前的On Error Goto...语句相比而言,通过使用一种与该语言其它部分更适应的语法从而使得代码更具有可读性。

  2. 比以前的On Error Goto...语句功能更强,而且提供了更为灵活性的控制能力。

  一、 捕获并抛出异常

  异常处理是用Try...Catch...Finally...End Try语句实现的,其基本语法形式如下:

Try
'能够引发一个异常的代码
Catch
'处理异常的代码
Finally
'实现清理工作的代码(如关闭数据库连接,等等)
End Try

  Try和End Try语句都是必需的。Catch和Finally语句可以共同使用于一个Try块中,但是至少使用其中之一。而且,可以使用多个Catch语句来处理不同类型的异常。如果你有多个Catch块,可以对它们加以排序:从最具体的异常类型到最粗略的异常类型:

Try
 '能够引发一个异常的代码
Catch ex As ArgumentOutOfRangeException
 '有可能使用一个缺省值来处理一个无效参数以便使代码继续执行
Catch ex As Exception
 '处理任何其它类型的异常
Finally
 '实现清理工作的代码(如关闭数据库连接,等等)
End Try

  你也可以在你的代码中抛出异常。当你在代码中执行一些清理工作时,捕获并抛出异常是很有用的-这样以来,一个更高层级的过程可以捕获它。当你创建定制异常类型时,抛出异常也很有用。

  为了抛出一个异常,你可以编写如下形式的代码:

Throw New ArgumentOutOfRangeException

  ArgumentOutOfRangeException告诉Throw语句要抛出什么类型的异常。这个ArgumentOutOfRangeException类型仅是.NET框架所提供的众多的类型之一。

  二、 传播异常

  当一个异常出现于你的代码的某处时,你可以以三种方式传播它:

  ·什么也不做而让它自动地传播回调用栈(由系统自动处理)。

  ·捕获并再次抛出它。这可以允许你在Finally块中运行一些清理代码。

  ·捕获它,并使用InnerException属性在另一个异常中包装该异常,并且把这个新的异常抛回调用过程。这个InnerException属性可以让你维持原始的异常并在一个关系更为密切的异常中存放它的信息。

共3页。 1 2 3 :
网友关注
最新上市
编辑推荐
欢迎订阅天极网RSS聚合资讯:http://www.yesky.com/index.xml