1
在下面的子例程中,抛出异常时StreamReader
会被正确关闭吗?或者我有自己的事情来确保这一点?StreamReader在异常抛出场景中的作用域范围
Sub mySub()
Dim sr As StreamReader = File.OpenText("someFilename")
Dim line As String = sr.ReadLine()
While Not (line Is Nothing)
' Some logic here
If someCondition Then
Throw New Exception("someExplanation")
End If
line = sr.ReadLine()
End While
End Sub
如果我在'...'内抛出一个异常,'StreamReader'和文件句柄等会关闭吗? –
一旦执行离开Using块,StreamReader就会自动调用.Dispose(),它释放StreamReader /底层流使用的所有资源。 – JamesMLV
王牌,谢谢。我想知道为什么在离开函数作用域时不会出现这种情况?没有别的东西可以引用它。 –