各位大虾好,本人请教一个编程思路问题主要功能为:使用一个函数抓取某网页的数据,但经常由于服务器错误,需要重试,我不知道重试是怎么实现的,是不是在try catch里面捕获失败信息,然后在catch里面再调用这个函数?

解决方案 »

  1.   

    try 里面是放可能出现错误的代码
    catch 里如果是try里面错误则执行的代码
    你try、catch都执行那段代码,那try、catch就没有意义了
    重试就是再执行一遍那个获取网页数据的方法
      

  2.   

    bool IsSuccess = false;
    while(!IsSuccess)
    {
        try
        {
            // ToDo: 相关捕获工作
            IsSuccess = true;
        }
        catch (SomeException e)
        {
            // ToDo: 捕获工作未成功时的清理工作
        } 
    }
      

  3.   

    3楼的方法有个问题 如果那个网页根本就没法打开会造成死循环  下面这个可以避免bool IsSuccess = false;
    int RetryTime=0;//如果抓取不成功并且重试不到3次就重试while(!IsSuccess && RetryTime<3)
    {
       try
       {
         //#####这里写你抓网页的过程#####
          IsSuccess = true; //如果正常抓取就不用再重试了
          RetryTime=0; //清零 不要忽略
       }
       catch (Exception e)
       {
            IsSuccess = false; //没抓取到就重试
    RetryTime++; // 标记是第几次重试
       }  
    }