HtmlAgilityPack错误处理 - 捕获异常

时间:2014-05-15 18:22:30

标签: c# error-handling html-agility-pack

我试图确定如何捕捉异常我得到的是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....
        }

2 个答案:

答案 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);

                }
            }

希望这有助于其他人!