0

与其他 WebException 错误相比,我需要知道如何捕获和识别超时错误。请求超时设置为“1”以使环境能够捕获异常。我只需要知道如何识别它。(即默认工作值 = 60000)。这是我的代码:

// some code here
request.Timeout = 1;
// some code here

catch (WebException wex)
            {
                Console.WriteLine(wex);
                try
                {
                    response_code = ((int)((HttpWebResponse)wex.Response).StatusCode);
                    State_show.ForeColor = System.Drawing.Color.Red;
                    if (response_code == 404)
                    {
                        State_show.Text = "Error 404. Retrying the request";
                        request_1();
                    }
                    if (response_code != 400 || response_code != 503 || response_code != 404)
                    {
                        State_show.Text = "Error " + response_code + ". Please try again";
                        FlashWindow.Flash(this);
                    }
                }
                catch (Exception exc)
                {
                    Console.WriteLine(exc);
                    MessageBox.Show("Check internet connection");
                }
            }

因此,如果我收到错误的 http 状态代码,它会很好。但如果响应超时,它会引发额外的异常。最简单的方法是获取

string wex_modified = wex.ToString();
If (wex_modified.contains("Timeout"))
{
      // some handling here
}

但我真的不喜欢它。我尝试使用 wex.GetType() 和其他可用功能,但没有成功。

有没有其他方法可以识别异常?

4

1 回答 1

1

WebException.Status 属性返回一个WebExceptionStatus 枚举。枚举值之一是Timeout.

if (wex.Status == WebExceptionStatus.Timeout)
{
   // We have a timeout!
}
于 2013-11-10T23:46:05.980 回答