使用用户筛选的异常处理程序

更新:2007 年 11 月

目前,Visual Basic 支持用户筛选的异常。用户筛选的异常处理程序根据您为异常定义的要求捕捉和处理异常。这些处理程序将 Catch 语句和 When 关键字结合使用。

当一个特定的异常对象对应于多个错误时,此方法很有用。在那种情况下,对象通常有一个属性包含与错误关联的特定错误代码。可以在表达式中使用此错误代码属性,仅选择要在 Catch 子句中处理的特定错误。

下面的 Visual Basic 示例阐释 Catch/When 语句。

Try
      'Try statements.
   Catch When Err = VBErr_ClassLoadException
      'Catch statements.
End Try

用户筛选的子句表达式不受任何形式的限制。如果执行用户筛选的表达式时发生异常,将会丢弃该异常,并认为该筛选表达式的计算结果为 false。在这种情况下,公共语言运行库继续搜索处理程序,以找到当前异常。

组合特定异常与用户筛选的子句

Catch 语句可同时包含特定异常和用户筛选的子句。运行库首先测试特定异常。如果特定异常成功,则运行库执行用户筛选器。一般筛选器可包含对类筛选器中声明的变量的引用。请注意,两个筛选器子句的顺序不可逆转。

下面的 Visual Basic 示例演示 Catch 语句以及使用 When 关键字的用户筛选子句中的特定异常 ClassLoadException。

Try
      'Try statements.
   Catch cle As ClassLoadException When cle.IsRecoverable()
      'Catch statements.
End Try

请参见

任务

如何:使用 Try/Catch 块捕捉异常

如何:在 Catch 块中使用特定异常

概念

处理异常的最佳做法

其他资源

异常处理基础知识