1

我正在扫描一个包含许多路径的 url,例如:http://url.com/path1to 1000. 有时我得到一个 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());
        }
    }
}
4

1 回答 1

1

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

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

在什么情况下响应可以为空,这就是MSDN所说的

如果来自 Internet 资源的响应可用,则包含来自 Internet 资源的错误响应的 WebResponse 实例;否则为空。

于 2013-08-29T05:48:27.140 回答