即使我使用 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
我有以下代码:
----
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