VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > VB.net教程 >
  • 如何:在发生错误时保持控制 (Visual Basic)

使用 Try...Catch...Finally 语句 (Visual Basic) 结构可以进行“结构化异常处理”。 这样,如果在运行代码时发生指定的异常,则可以执行特定语句块。 发生这种情况时,称代码“引发”异常,则使用适当的 Catch 语句“捕捉”该异常。

代码引起异常时运行一组语句

  • 使用 Try...Catch...Finally 结构将可能引起异常的代码包含在内。 然后,指定发生异常时要运行的代码,并且选择提供一组在控制退出 Try...Catch...Finally 结构之前要运行的语句。

    下面的示例尝试精确计算在 Object 变量 givenDate 中提供的值之后 100 年的日期和时间。

    Dim givenDate As Object
    Dim nextCentury As Date
    Try
        nextCentury = Microsoft.VisualBasic.DateAdd("yyyy", 100, givenDate)
        Catch thisExcep As System.ArgumentOutOfRangeException
        ' The resulting date/time is later than December 31, 9999.
        Catch thisExcep As System.ArgumentException
        ' At least one argument has an invalid value.
        Catch thisExcep As System.InvalidCastException
        ' The value in givenDate cannot be interpreted as a date/time.
        Catch
        ' An unforeseen exception has occurred.
        Finally
        ' This block is always run before leaving the Try structure.
    End Try
    

    前三个 Catch 块处理 DateAdd 函数引发的可预知异常。 最后一个 Catch 块中可以处理意外异常。

    不管发生什么情况,Finally 块始终是离开 Try...Catch...Finally 结构之前最后要执行的代码。 如果在 Try 或 Catch 块中创建或打开了对象或数据库连接等资源,如果可以,则使用 Finally 块关闭或释放这些资源。

    如果异常变量 thisExcep 未出现在 Dim 等声明语句中,则将具有 As 子句的 Catch 语句用作声明。

 

原文链接:https://docs.microsoft.com/zh-cn/previous-versions/visualstudio/visual-studio-2010/ms172857(v=vs.100)

相关教程