Ich versuche zu ermitteln, wie die Ausnahme abgefangen wird, die ich bekomme, ist Object reference not set to an instance of an object.
Gibt es eine bessere Möglichkeit, die Ausnahme abzufangen und dem Benutzer die Ursache der Ausnahme zu zeigen?
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....
}
Ich kann mir keine andere Möglichkeit vorstellen, mit der Ausnahme umzugehen. Aber es ist besser, wenn Sie die Ausnahme überhaupt vermeiden können.
Wenn Code-Snippet gepostet wird, kann NullReferenceException
ausgelöst werden, wenn ein link
vorhanden ist, der kein src
Attribut hat (dieser Teil att.Value
die Ausnahme aus, weil att
in diesem Fall null
ist).
Sie können die GetAttributeValue()
-Methode verwenden, um die Ausnahme zu vermeiden, zum Beispiel:
//here when the attribute not found, the 2nd parameter will be returned
//(empty string in this case)
var src = link.GetAttributeValue("src", "");