.net 中 try catch 与 递归

foxidea 发布于 2011/10/19 14:55
阅读 1K+
收藏 0
    protected string getHtml(string url)
    {
        try
        {
            HttpWebRequest WR = (HttpWebRequest)WebRequest.Create(url);
            WebResponse Res = WR.GetResponse();
        }
        catch
        {

            getHtml(url);
            
        }

        return "";
    }

我 在 .net 中, 使用  远程抓取 网页 html

由于经常出现超时的 错误

所以我使用了 try catch

当发生 错误的时候 我就 catch 、再去 重新去抓取 这个 url 

可是我测试发现:

catch 到之后 再次 执行 这个方法的时候 不管用了,程序自动停止了

不再向下执行了

 

加载中
0
w
welldone

当然。

foxidea
foxidea
怎么解决呢??
0
w
welldone

catch 是用来处理异常的,比如发现出错后,记录错误...

catch 处理的异常应该是未知的,不可意料的...

而你这种错误不是异常,因为这是可预知的..完全可以避免..

 

你问我怎么解决..我觉得是 getHtml(url)这个方法的逻辑有问题,没有处理好需要的资源..

foxidea
foxidea
还是想如果错误再来一次
foxidea
foxidea
谢谢,我觉得
0
phantasy
phantasy
请你关闭流 close 
返回顶部
顶部