请从逻辑上分析一下如果这样异常处理的话有什么问题

songhuan 2008-09-17 11:36:55
各位兄弟,我知道这样有问题,现在我希望知道如果我就是想这样做,会出现什么问题,谢谢
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
...全文
70 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
优途科技 2008-09-17
  • 打赏
  • 举报
回复
学习。
spark_cao 2008-09-17
  • 打赏
  • 举报
回复
应该没有问题
brallow 2008-09-17
  • 打赏
  • 举报
回复
哦,没注意到有一个递归函数调用。是的,如果这样那问题不存在了。
songhuan 2008-09-17
  • 打赏
  • 举报
回复
谢谢关注
[Quote=引用 1 楼 phy 的回复:]
1:单从你这两个函数看来,你的ErrorCount不会有效果。
因为你的errorCount虽然用ref的方式返回了,但你在调用DownloadString ByURL时每次都初始化了一个新的errorcount,所以
if(errorCount>10)应当永远不会执行。

2:你的异常处理没有问题。
[/Quote]


To phy:
Catch ex As Exception
errorCount = errorCount + 1
pageHtml = PrivateDownloadStringByURL(URL, errorCount)
End Try

我在这调的是PrivateDownloadStringByURL,并没有调DownloadString ,所以errorCount是累加的,可能会大于10的
gh_li 2008-09-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 phy 的回复:]
1:单从你这两个函数看来,你的ErrorCount不会有效果。
因为你的errorCount虽然用ref的方式返回了,但你在调用DownloadString ByURL时每次都初始化了一个新的errorcount,所以
if(errorCount>10)应当永远不会执行。

2:你的异常处理没有问题。
[/Quote]

不对吧,有下面一段代码呀,如果连续有十次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
brallow 2008-09-17
  • 打赏
  • 举报
回复
1:单从你这两个函数看来,你的ErrorCount不会有效果。
因为你的errorCount虽然用ref的方式返回了,但你在调用DownloadString ByURL时每次都初始化了一个新的errorcount,所以
if(errorCount>10)应当永远不会执行。

2:你的异常处理没有问题。
消失的尘芥 2008-09-17
  • 打赏
  • 举报
回复
楼主的代码看起来没问题啊!

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧