2

有什么办法可以跳过/捕获所有代理异常?并且还可以设置一个超时,这样程序就不会卡在中间

webProxy = new WebProxy("" + prox + "");
webProxy.Credentials = CredentialCache.DefaultCredentials;
wr.Proxy = webProxy;

我已经添加

             catch (Exception ex)
            {
                // Do nothing or log
                var exceptio = ex.ToString();
                richTextBox1.Text = exceptio;
            }

我怎么能把它超时?

4

2 回答 2

3

try/catch 块会对此有所帮助吗?

于 2011-05-27T11:12:08.113 回答
2

正如建议的那样,您需要将执行代码包含在一个try/catch块中。您可以在Debug/Exceptions...
(在 Visual Studio 中) 下摆弄调试器异常处理,但无论如何,任何未处理的异常总是会触发调试器中断。

try
{
    // Do work that might fail
}
catch (Exception ex)
{
    // Do nothing or log
    Trace.WriteLine(ex);
}

更多关于调试和异常的信息可以在这里找到

关于超时,您将其放在WebRequest对象上,而不是代理上,如下所示:

WebProxy webProxy = new WebProxy("http://myproxyserver:80/");
WebRequest webRequest = WebRequest.Create("http://www.stackoverflow.com");
webRequest.Proxy = webProxy;
webRequest.Timeout = 5000;  // <-- Set time out here, in milliseconds
...

在此处阅读有关超时的更多信息。

于 2011-05-27T11:47:26.120 回答