Pee*_*Haa 1 .net vb.net try-catch try-catch-finally
我在互联网上找到了一些代码如下(稍加修改).
它只是请求网页的内容.
Private Sub readWebpage(ByVal url As String)
Dim Str As System.IO.Stream
Dim srRead As System.IO.StreamReader
Try
' make a Web request
Dim req As System.Net.WebRequest = System.Net.WebRequest.Create(url)
Dim resp As System.Net.WebResponse = req.GetResponse
Str = resp.GetResponseStream
srRead = New System.IO.StreamReader(Str)
' read all the text
textContent.text = srRead.ReadToEnd
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unable to download content from: " & url)
Finally
srRead.Close()
Str.Close()
End Try
End Sub
Run Code Online (Sandbox Code Playgroud)
但是我得到两个警告:
Warning 1 Variable 'srRead' is used before it has been assigned a value. A null reference exception could result at runtime.
Warning 2 Variable 'Str' is used before it has been assigned a value. A null reference exception could result at runtime.
Run Code Online (Sandbox Code Playgroud)
我知道我可以简单地忘记Finally并将代码添加到try块中.
这是可行的方法,还是可以使用不同的方法来阻止警告?
在此先感谢您的启发!:)
dr.*_*vil 10
你可以简单地将它们设置为Nothing,这样你就会通知编译器你知道你在做什么:)
Dim Str As System.IO.Stream = Nothing
Run Code Online (Sandbox Code Playgroud)