我有2所列出:空值例外
public List<string> my_link = new List<string>();
public List<string> english_word = new List<string>();
我再殺從頁面的一些鏈接,並將其保存到「my_link」;爲此我使用這些代碼,如:
HtmlWeb web = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load("http://search.freefind.com/find.html?id=59478474&pid=r&ics=1&query=" + x);
HtmlNodeCollection nodes=doc.DocumentNode.SelectNodes("//font[@class='search-results']//a");
try
{
foreach (HtmlNode n in nodes)
{
link = n.InnerHtml;
link = link.Trim();
my_link.Add(link);
}
}
catch (NullReferenceException)
{
MessageBox.Show("NO link found ");
}
那麼我再殺一些內容將會對鏈接我報廢,我存儲在一個english_word.Add(q);
各個環節的內容,可以從報廢各個環節的內容除了最後one.my代碼就是這樣
foreach (string ss in my_link)
{
HtmlWeb web2 = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc2 = web2.Load(ss);
HtmlNodeCollection nodes2 = doc2.DocumentNode.SelectNodes("//table[@id='table1']//tr[position()>1]//td[position()=2]");
try
{
foreach (HtmlNode nn in nodes2)
{
q = nn.InnerText;
q = System.Net.WebUtility.HtmlDecode(q);
q = q.Trim();
english_word.Add(q);
}
}
catch (NullReferenceException ex)
{
MessageBox.Show("No english word is found ");
}
}
僅爲最後一個鏈接顯示「No english word is found」
我在做什麼錯了?
追趕的NullReferenceException是很少做正確的事。 –
如果您不忽略實際的異常情況,您可能會弄清楚發生了什麼事情。 –
同意!相反,檢查null! if(object!= null)'或'if(!String.IsNullOrEmpty(yourString))'爲字符串。 – Amicable