是什么让ex.Response返回null

时间:2013-08-29 05:24:03

标签: c# .net httpwebrequest httpwebresponse webexception

我正在扫描一个包含多个路径示例的网址:http://url.com/path11000。有时我得到一个WebException,但在我的catch块中,如果我不使用该行,它将抛出NullReferenceException错误

if (x.Status == WebExceptionStatus.ProtocolError && x.Response != null)

所以我的问题是:下面的代码是修复错误还是忽略它?

还有一件事有时没有错误有时会出错但是大部分时间都会出错但是如果使用下面的代码,一切都会正常工作。

catch (WebException x)
{
    if (x.Status == WebExceptionStatus.ProtocolError && x.Response != null)
    {
        HttpWebResponse response = (HttpWebResponse)x.Response;
        if (response.StatusCode == HttpStatusCode.NotFound)
        {
           listBox3.Items.add(listBox1.Items[i].ToString());
        }
    }
}

1 个答案:

答案 0 :(得分:1)

  

下面的代码是修复错误还是忽略它

可以检查响应是否为空。这是正确的方法,因为响应可以为空。

并且在什么情况下响应可以为null,这是MSDN所说的

  

如果可以从Internet资源获得响应,则为WebResponse   包含来自Internet资源的错误响应的实例;   否则,null。