Это зависит от того, что вам нужно. Если вам нужно обрабатывать различные типы исключений по-разному, вы должны использовать несколько блоков catch и улавливать как можно больше особых исключений.
Но иногда вам может понадобиться обрабатывать все исключения таким же образом. В таких случаях catch (Exception) может быть в порядке. Например:
try
{
DoSomething();
}
catch (Exception e)
{
LogError(e);
ShowErrorMessage(e); // Show "unexpected error ocurred" error message for user.
}
Вам должно быть довольно просто получить то, что вам нужно с HtmlAgilityPack. Предполагая, что ваш документ загружен в объект HtmlDocument
с именем doc
:
HtmlNodeCollection collection = doc.DocumentNode.SelectNodes("//a[@href]");
foreach (HtmlNode node in collection)
{
// Do what you want with the href value in here. As an example, this just
// just prints the value to the console.
Console.WriteLine(node.GetAttributeValue("href", "default"));
}