如何:在 Visual Basic 中使用 Try…Finally 块清理资源

更新:2007 年 11 月

Finally 语句可用在 Try 块中以确保已分配的资源得以清理。Finally 块中的代码在异常处理代码之后、控制返回调用过程之前运行。即使代码引发了异常,即使在 Catch 块中添加了显式的 Exit Function(或 Exit Sub)语句,都会运行 Finally 块。

如果不需要捕捉特定异常,则 Using 语句的行为与 Try…Finally 块一样,并且无论以任何方式退出块,都保证会处置资源。即使发生未处理的异常,也是如此。有关更多信息,请参见 Using 语句 (Visual Basic)

使用 Finally 语句清理资源

  • 将无论是否出现异常都要执行的代码放置在 Finally 块内。下面的代码创建一个 StreamReader,并用来读取文件。

    Dim reader As New System.IO.StreamReader("C:\testfile")
    Try
        reader.ReadToEnd()
    Catch ex As System.IO.IOException
        MsgBox("Could not read file")
    Finally
        'This command is executed whether or not the file can be read
        reader.Close()
    End Try
    

请参见

任务

如何:在 Visual Basic 中使用 Try...Catch 块测试代码

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

如何:释放系统资源

概念

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

参考

Using 语句 (Visual Basic)

其他资源

异常处理任务