我试图确定如何捕捉异常我得到的是Object reference not set to an instance of an object.
有没有更好的方法来捕获异常并向用户显示异常原因?
baseUrl = "my url....";
try
{
HtmlWeb hw = new HtmlWeb();
HtmlDocument docSRC = hw.Load(baseUrl);
//if (docSRC.DocumentNode.SelectNodes("//img/@src").Count > 0)
//{
//}
foreach (HtmlNode link in docSRC.DocumentNode.SelectNodes("//img/@src"))
{
HtmlAttribute att = link.Attributes["src"];
srcTags.Add(att.Value);
}
}
catch (Exception ex)
{
//catch reason for exception....
}
答案 0 :(得分:1)
我想不出任何其他方式来处理异常。但是如果你能够首先避免这种例外情况会更好。
查看发布的代码段,当NullReferenceException
没有link
属性时,可能会抛出src
(此部分att.Value
会抛出异常,因为{在这种情况下,{1}}为att
。
您可以使用null
方法来避免异常,例如:
GetAttributeValue()
答案 1 :(得分:0)
以下是我能够解决的问题:
if (docSRC.DocumentNode.SelectNodes("//img/@src") != null)
{
foreach (HtmlNode link in docSRC.DocumentNode.SelectNodes("//img/@src"))
{
HtmlAttribute att = link.Attributes["src"];
srcTags.Add(att.Value);
}
}
希望这有助于其他人!