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

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

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

提示

对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您所使用的 Visual Studio 版本和您所使用的设置。有关更多信息,请参见 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)

异常处理疑难解答 (Visual Basic)

参考

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

概念

选择何时使用结构化异常处理和非结构化异常处理 (Visual Basic)

其他资源

异常处理任务 (Visual Basic)