各位兄弟,我知道这样有问题,现在我希望知道如果我就是想这样做,会出现什么问题,谢谢
Public Function DownloadStringByURL(ByVal URL As String) As String
Dim errorCount As Integer = 0
Return PrivateDownloadStringByURL(URL, errorCount)
End Function Private Function PrivateDownloadStringByURL(ByVal URL As String, ByRef errorCount As Integer) As String
Application.DoEvents()
Dim pageHtml As String = String.Empty
If (errorCount > 10) Then
Return pageHtml
End If
Try
Dim web As New WebClient
pageHtml = Encoding.UTF8.GetString(web.DownloadData(URL))
Catch ex As Exception
errorCount = errorCount + 1
pageHtml = PrivateDownloadStringByURL(URL, errorCount)
End Try Return pageHtml
End Function
Public Function DownloadStringByURL(ByVal URL As String) As String
Dim errorCount As Integer = 0
Return PrivateDownloadStringByURL(URL, errorCount)
End Function Private Function PrivateDownloadStringByURL(ByVal URL As String, ByRef errorCount As Integer) As String
Application.DoEvents()
Dim pageHtml As String = String.Empty
If (errorCount > 10) Then
Return pageHtml
End If
Try
Dim web As New WebClient
pageHtml = Encoding.UTF8.GetString(web.DownloadData(URL))
Catch ex As Exception
errorCount = errorCount + 1
pageHtml = PrivateDownloadStringByURL(URL, errorCount)
End Try Return pageHtml
End Function
解决方案 »
- DataGridView的 ShowCellToolTips =true 但是显示内容时间才几秒 如何延长其显示的时间
- c# 怎么样使用多线程采集网页内容
- 一张图片怎么做成Google地图一样的
- 怎么捕获DataGridView中列编辑模式中的按键事件??急
- 看看这个问题奇怪了!有谁能够解决?解决者有重赏!
- 自定义Combox
- 如何实现QQ右下角新闻弹出的功能
- DynamicDataDisplay 界面出现错误,但程序可以运行
- “designer.cs” 怎么自己变了???
- 再什么地方可以下载 Smart Device Extensions for Visual Studio .NET??
- 播放路径问题[紧急求助]
- C# 端口访问量
因为你的errorCount虽然用ref的方式返回了,但你在调用DownloadString ByURL时每次都初始化了一个新的errorcount,所以
if(errorCount>10)应当永远不会执行。2:你的异常处理没有问题。
不对吧,有下面一段代码呀,如果连续有十次catch的话,不就大于十了?
Try
Dim web As New WebClient
pageHtml = Encoding.UTF8.GetString(web.DownloadData(URL))
Catch ex As Exception
errorCount = errorCount + 1
pageHtml = PrivateDownloadStringByURL(URL, errorCount)
End Try
To phy:
Catch ex As Exception
errorCount = errorCount + 1
pageHtml = PrivateDownloadStringByURL(URL, errorCount)
End Try我在这调的是PrivateDownloadStringByURL,并没有调DownloadString ,所以errorCount是累加的,可能会大于10的