如何:在 Visual Basic 中筛选 Catch 块中的错误

更新:2007 年 11 月

Catch 语句提供多种方法可筛选错误。一个方法是通过异常的类型进行筛选。在这种情况下,从异常的最具体类型到最抽象类型进行处理就十分重要,这是因为 Catch 语句是顺序执行的。

When 子句也可用来按条件表达式(如特定错误号)进行筛选。这两种方法也可以组合使用。

说明:

对话框中的可用选项以及显示的菜单命令的名称和位置可能会与“帮助”中的描述不同,具体取决于您的当前设置或版本。此帮助页是根据“常规开发设置”而编写的。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置

按异常类型筛选

  • 按照从最具体到最抽象的顺序,为要检查的异常的每个类型都插入一条 Catch 语句。

    Try
        Throw New Exception
    Catch ex As System.IO.IOException
        ' Code reacting to IOException 
    Catch ex As System.NullReferenceException
        ' Code reacting to NullReferenceException
    Catch ex As Exception
        ' Code reacting to any exception
    End Try
    

按条件表达式筛选

  • 使用 Catch When 语句按条件表达式筛选。如果条件表达式计算为 True,则执行 Catch 块后面的代码。

    Try
        ' Code goes here.
        ' Check for type mismatch error.
    Catch ex As Exception When Err.Number = 5
        ' Code reacting to exception. 
    End Try
    

请参见

任务

如何:检查异常的内部异常

异常处理疑难解答

概念

异常处理(针对 Visual Basic 6.0 用户)

选择何时使用结构化异常处理和非结构化异常处理

参考

Try...Catch...Finally 语句 (Visual Basic)

其他资源

异常处理任务