-1
У меня есть следующий код:Как сделать лучшее кодирование этого кода
string name1;
string name2;
string name3;
try
{
name1 = htmlDoc.DocumentNode.SelectSingleNode("//input[@name='name1']").GetAttributeValue("value", "");
name2 = htmlDoc.DocumentNode.SelectSingleNode("//input[@name='name2']").GetAttributeValue("value", "");
name3 = htmlDoc.DocumentNode.SelectSingleNode("//input[@name='name3']").GetAttributeValue("value", "");
}
catch(Exception)
{
name1 = "";
name2 = "";
name3 = "";
}
Даже думал, что я не мог найти случай, есть шанс, что узел не найден, и функция SelectSingleNode() возвращает нуль , Но если одна из них дает ошибку, все три строки будут пусты. Я мог бы решить ее, как код ниже, но мне не нравится называть 3 try/catch в такой последовательности, есть ли лучший способ сделать это?
try
{
name1 = htmlDoc.DocumentNode.SelectSingleNode("//input[@name='name1']").GetAttributeValue("value", "");
} catch (Exception)
{
name1 = "";
}
try
{
name2 = htmlDoc.DocumentNode.SelectSingleNode("//input[@name='name2']").GetAttributeValue("value", "");
} catch (Exception)
{
name2 = "";
}
try
{
name3 = htmlDoc.DocumentNode.SelectSingleNode("//input[@name='name3']").GetAttributeValue("value", "");
} catch (Exception)
{
name3 = "";
}