WebException Response属性返回null

本文关键字:null 返回 属性 Response WebException | 更新日期: 2023-09-27 18:29:21

我正在扫描一个具有多个路径的url,例如:http://url.com/path11000。有时我会得到一个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());
        }
    }
}

WebException Response属性返回null

根据WebException.Response属性的文档

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

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

希望能有所帮助。

当没有响应时,您的代码将忽略原始WebException。是否要将这些故障添加到listBox中,就像有响应的故障一样,这取决于