HtmlAgilityPack Error Handling - capture d'exception

c# error-handling html-agility-pack

Question

J'essaye de déterminer comment attraper l'exception que ce que j'obtiens est une Object reference not set to an instance of an object.

y at-il un meilleur moyen de capturer l'exception et de montrer à l'utilisateur la cause de l'exception?

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

Réponse populaire

Je ne vois pas d'autre moyen de gérer les exceptions. Mais ce sera mieux si vous pouvez éviter l'exception au départ.

En NullReferenceException extrait de code publié, une NullReferenceException peut être levée lorsqu'un link ne possède pas d'attribut src (cette partie att.Value exception car att est null dans ce cas).

Vous pouvez utiliser la méthode GetAttributeValue() pour éviter l'exception, par exemple:

//here when the attribute not found, the 2nd parameter will be returned 
//(empty string in this case)
var src =  link.GetAttributeValue("src", "");



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi