错误处理-捕获异常
本文关键字:捕获异常 处理 错误 | 更新日期: 2023-09-27 18:03:40
我正试图确定如何捕获异常,我得到的是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....
}
我想不出其他处理异常的方法。但是如果你能从一开始就避免这个异常,那就更好了。
查看张贴的代码片段,当link
没有src
属性时,NullReferenceException
可能被抛出(这部分att.Value
将抛出异常,因为att
在这种情况下是null
)。
您可以使用GetAttributeValue()
方法来避免异常,例如:
//here when the attribute not found, the 2nd parameter will be returned
//(empty string in this case)
var src = link.GetAttributeValue("src", "");
我是这样解决的:
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);
}
}
希望这对其他人有帮助!