В следующем коде NDepend сообщает о нарушении из-за глубины вложенности 6 (по 1 для каждого улова), а предел равен 5. в this rule:Как рефакторинг для уменьшения глубины вложенности с помощью try/multiple catch (NDepend)
Краткое изложение методов рефакторинга
Является ли наличие только один улов для более общего IOException и имеющий код в этом улове различать DirectoryNotFound, PathTooLong и другие IOException лучший путь? Я не хочу увеличивать ограничение глубины вложенности, поскольку в большинстве случаев это допустимый предел. Что относительно случая, когда ни одно из исключений в одной иерархии и объединение не является вариантом? Создает ли атрибут и изменяет правило, чтобы отключить нарушение только для этого метода, единственный способ пойти?
private static void _TryDeleteFile(string filename)
{
try
{
File.Delete(filename);
}
catch (ArgumentException innerEx)
{
// do something
}
catch (DirectoryNotFoundException innerEx)
{
// do something
}
catch (PathTooLongException innerEx)
{
// do something
}
catch (IOException innerEx)
{
// do something
}
catch (NotSupportedException innerEx)
{
// do something
}
catch (UnauthorizedAccessException innerEx)
{
// do something
}
}
Я бросаю вам повторное голосование, потому что похоже, что вы прилагаете усилия для улучшения своего вопроса, в любое время, когда вы упоминаете какую-либо ошибку или исключение, включайте полный текст сообщения, дословно (используйте '' 'at начало цитаты). Кроме того, всегда включайте тег для языка программирования или сообщение не будет видно большинству экспертов по теме. –
Спасибо, теперь предложение интегрировано. –
Теперь у вас есть 4 повторного открытия голосов, еще один необходимый. –