В следующем коде NDepend сообщает о нарушении из-за глубины вложенности 6 (1 для каждого улова) и предела 5. Таким образом, он помечен в это правило:
Краткий обзор методов рефакторинга
Является ли лучшим способом иметь только один перехват для более общего исключения 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
}
}
>
в начале, чтобы процитировать его ). Кроме того, всегда включайте тег для языка программирования, иначе сообщение не увидит большинство экспертов в данной области. - person Adi Inbar   schedule 12.11.2014