即使我使用 try{}catch{} 仍然会收到 NullReferenceException

Still getting NullReferenceException even if I use try{}catch{}

我有以下代码:

----

System.NullReferenceException on line: downloadLinkList.Add(item.SelectSingleNode(".//a").Attributes["href"].Value);

如何正确处理它,让它不再崩溃?我的印象是它应该直接跳过。

使用 break 也不是一个选项,因为我仍然想要那个没有所需 href.

的特定页面的信息

Try/Catch机制不会阻止异常的发生。它会阻止它 propagate/bubble 起来。

 try
 {
    downloadLinkList.Add(item.SelectSingleNode(".//a").Attributes["href"].Value);
 }
 catch(NullReferenceException)
 {
    Console.WriteLine("NullReferenceException in TaskId: " + taskId);
 }
 Console.WriteLine("Hello");

如果没有 try/catch 机制,将永远不会打印“Hello”,因为异常中断了正常的代码流。通过捕获异常,您可以对异常执行某些操作,其余代码可以继续。

但您的 IDE 可能会中断执行以向您显示异常(取决于您的设置),但您只需单击“继续”(F5),它将继续到您的 Console.WriteLine