HtmlAgilityPack Обработка ошибок - исключение для catching

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....
        }

Популярные ответы

Я не могу думать о другом способе обработки исключений. Но будет лучше, если вы сможете избежать исключения в первую очередь.

Если вы просмотрели фрагмент кода, NullReferenceException может быть NullReferenceException , если есть link , у которой нет атрибута src (эта часть att.Value будет 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", "");


Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему