提问人: 提问时间:3/8/2021 更新时间:3/25/2021 访问量:1237
即使我使用 try{}catch{} 仍然得到 NullReferenceException
Still getting NullReferenceException even if I use try{}catch{}
问:
我有以下代码:
----
System.NullReferenceException 在线: downloadLinkList.Add(item.选择SingleNode(“.//a”)。Attributes[“href”].值);
我怎样才能正确处理它并使其不再崩溃?我的印象是它应该跳过前面。
使用也不是一种选择,因为我仍然想要不需要的某个页面的信息。break
href
答:
2赞
Arcord
3/8/2021
#1
Try/Catch
机制不会阻止异常的发生。它将阻止它传播/冒泡。
try
{
downloadLinkList.Add(item.SelectSingleNode(".//a").Attributes["href"].Value);
}
catch(NullReferenceException)
{
Console.WriteLine("NullReferenceException in TaskId: " + taskId);
}
Console.WriteLine("Hello");
如果没有该机制,则永远不会打印“Hello”,因为异常中断了正常的代码流。通过捕获异常,您可以对异常执行某些操作,并且代码的其余部分可以继续。try/catch
但是,您的 IDE 可能会中断执行以显示异常(取决于您的设置),但您只需单击“继续”(F5),它将继续到Console.WriteLine
评论
0赞
3/8/2021
是的。我只是想,如果在现实世界中实现,它会弹出并崩溃。我现在才意识到我的异常设置设置为“发生这种情况时中断”,所以可能这就是原因。我的错是没有注意到它在按 F5 后仍然运行。尽管如此,还是谢谢你!
评论
NullReferenceException != ArgumentNullException
虽然原因通常是相同的