如果“selectnodes”返回null,如何在下面的foreach循环中捕获nullreferenceexception错误?
我在stackoverflow上搜索,发现提到了空合并条件(?)?condition)可以用来捕获此错误,但是,我不知道htmlnode的语法是什么,或者这是否可能。
foreach (HtmlNode link in imagegallery.DocumentNode.SelectNodes("//a[@href]") )
{
//Do Something
}
如何为这个循环设置空异常,或者有更好的方法来实现这一点?
下面是引发异常的完整代码-
private void TEST_button1_Click(object sender, EventArgs e)
{
//Declarations
HtmlWeb htmlWeb = new HtmlWeb();
HtmlAgilityPack.HtmlDocument imagegallery;
imagegallery = htmlWeb.Load(@"http://adamscreation.blogspot.com/search?updated-max=2007-06-27T10:03:00-07:00&max-results=20&start=18&by-date=false");
foreach (HtmlNode link in imagegallery.DocumentNode.SelectNodes("//a[@imageanchor=1 or contains(@href,'1600')]/@href"))
{
//do something
}
}
最佳答案
if(imagegallery != null && imagegallery.DocumentNode != null){
foreach (HtmlNode link in
imagegallery.DocumentNode.SelectNodes("//a[@href]")
?? Enumerable.Empty<HtmlNode>())
{
//do something
}
}