Перейти к содержанию

Недостижимый код

Выражения переходов (Возврат, Прервать, Продолжить и Перейти) и генерация исключений переводят управление в другое место кода. Обычно, любые выражения в блоке, расположенные за выражением перехода, являются недостижимыми и вносят путаницу.

В редких случаях, как показано ниже, код за переходом является достижимым. Однако такой код сложен для понимания и должен быть переработан.

    Процедура НехорошийМетод()
        Если А = 5 Тогда
            Перейти ~ОбработчикОшибки;
        Иначе
            ВыполнитьПолезное();
        КонецЕсли;

        Возврат Истина;
    ~ОбработчикОшибки:

        Возврат Ложь; // код достижим, но труден для понимания.
    КонецПроцедуры

Примечание: диагностика по умолчанию исключает из проверки методы содержащие условные инструкции препроцессора, например:

#Если ВебКлиент Тогда
  Сообщить("Истина");
  Возврат;
#КонецЕсли;

Включить проверку таких методов можно в настройках проверки, в SonarQube.

Экранирование кода

// sonar:UnreachableCode:off
// sonar:UnreachableCode:on