如何:在 Visual Basic 中使用 Try…Finally 块清理资源
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 块测试代码