try
{
 byte[] buf = new WebClient().DownloadData(url);
}
catch
{
}
有时候程序在这里会自动退出,并且捕获不到任何异常!求解决思路与方法!

解决方案 »

  1.   

    C# code
    try
    {
     byte[] buf = new WebClient().DownloadData(url);
    }
    catch
    {
    }
    有时候程序在这里会自动退出,并且捕获不到任何异常!求解决思路与方法!
      

  2.   

    try
    {}
    catch
    {}
    这个格式结构就行呀
      

  3.   

    DownloadData这个倒没碰到过,不过它的底层Socket有极低的概率出这种无解的问题
      

  4.   


    就算我catch什么都不做,一般调试,如果try里代码出问题了,也会在catch处中断。,不要再说在catch里加什么 throw 之类的了。估计确实是9楼说的那种情况……发贴就是看看有没有其它达人有之方面处理的经验!(使用response.GetResponseStream() 还是偶尔会中断的,超时都设置成30000了)
      

  5.   

    在catch中加throw是让错误能够显示出来,这样你能看到具体的错误类型,才好知道怎么解决
      

  6.   

    没见过你说的那种情况。
    webclient 一般需要设置一些属性
    可以这样试试
    WebClient client = new WebClient();
    client.Headers.Add("Accept:*/*");
    client.Headers.Add
    ...
    设置的属性,跟你请求的地址有关。你可以用vsniffer之类的工具拦截看看
    byte[] data = client.DownloadData(sUrl);即使异常,返回超时等也不会没有任何异常就退出。
      

  7.   

    try
    {
     byte[] buf = new WebClient().DownloadData(url);
    }
    catch(webexception e)
    {
      messageBox.Show(e.Message,"WebException");
    }
    catch (exception e)
    {
       MessageBox.Show(e.Message,"Exception");
    }
    首先看看 执行到try了么 还是在try前出错第二: DownloadData方法中是否有异常捕获和抛出机制,如果在这个方法中以及这个方法引用的方法中出现异常没有捕获,也会自动退出
    建议: 一步步往回查,看看这个方法引用关系中的方法是不是都有异常捕获和抛出机制对于底层的异常,不建议就地处理,建议抛出到显示层再进行处理另外 最好少用 
    try{} catch{} 之类,这种最多时掩盖异常,而不是捕获和处理异常  
    用 try{}catch(AException e){}catch(BException e){}catch(CException e){}catch(Exception e){}进行处理
      

  8.   

    如果可以的话楼主可以把url实际贴出来,这里会有人愿意建个工程来request一下那个地址看会发生什么的.