2

我正在扫描一个包含许多路径的 url,例如:http://url.com/path1to 1000. 有时我得到一个WebException但在我的块中,如果我不使用该行catch,它会抛出一个错误NullReferenceException
if (x.Status == WebExceptionStatus.ProtocolError && x.Response != null)

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

错误没有特定的错误路径,只是随机的http://url.com/path10或任何其他链接,谢谢:)

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

2 回答 2

7

根据WebException.Response财产文件

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

因此,如果我正确理解了您的问题,那么有必要测试WebException.Responsenull这意味着您的代码正确地避免了NullReferenceException而不是“忽略”它。

希望有帮助。

于 2013-08-29T00:40:24.387 回答
0

当没有响应可用时,您的代码将忽略原始 WebException。您是否打算将这些失败添加到列表框中,例如确实有响应的失败取决于您

于 2013-08-29T00:47:13.433 回答