我正在扫描一个包含多个路径示例的网址:http://url.com/path1
到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());
}
}
}
答案 0 :(得分:5)
根据WebException.Response
property
如果可以从Internet资源获得响应,则为WebResponse 包含来自Internet资源的错误响应的实例; 否则, null 。
因此,如果我正确理解了您的问题,那么是必要的来测试WebException.Response
的{{1}},这意味着您的代码正确地避免了null
而不是'忽视'它。
希望有所帮助。
答案 1 :(得分:0)
当没有可用响应时,您的代码忽略了原始WebException。是否意味着将这些故障添加到listBox,就像确实有响应的故障由你决定