Недостижимый код
Выражения переходов (Возврат
, Прервать
, Продолжить
и Перейти
) и генерация исключений переводят управление в другое место кода. Обычно, любые выражения в блоке, расположенные за выражением перехода, являются недостижимыми и вносят путаницу.
В редких случаях, как показано ниже, код за переходом является достижимым. Однако такой код сложен для понимания и должен быть переработан.
Процедура НехорошийМетод()
Если А = 5 Тогда
Перейти ~ОбработчикОшибки;
Иначе
ВыполнитьПолезное();
КонецЕсли;
Возврат Истина;
~ОбработчикОшибки:
Возврат Ложь; // код достижим, но труден для понимания.
КонецПроцедуры
Примечание: диагностика по умолчанию исключает из проверки методы содержащие условные инструкции препроцессора, например:
#Если ВебКлиент Тогда
Сообщить("Истина");
Возврат;
#КонецЕсли;
Включить проверку таких методов можно в настройках проверки, в SonarQube.
Экранирование кода
// sonar:UnreachableCode:off
// sonar:UnreachableCode:on