Использование синтаксической конструкции Если...Тогда...ИначеЕсли... (IfElseIfEndsWithElse)¶
Тип | Поддерживаются языки |
Важность | Включена по умолчанию |
Время на исправление (мин) |
Теги |
---|---|---|---|---|---|
Дефект кода |
BSL OS |
Важный |
Да |
10 |
badpractice |
Описание диагностики¶
Правило применяется всякий раз, когда условный оператор Если Тогда ИначеЕсли содержит одну или несколько конструкций ИначеЕсли. За последней конструкцией ИначеЕсли должна следовать конструкция Иначе.
Требование к заключительной конструкции Иначе - это защитное программирование. Такие конструкции устойчивы к возможным изменениям и не маскируют возможные ошибки.
Конструкция Иначе должна либо принимать соответствующие меры, либо содержать подходящий комментарий относительно того, почему не предпринимается никаких действий.
Примеры¶
Неправильно:
Если ТипЗнч(ВходящийПараметр) = Тип("Структура") Тогда
Результат = ЗаполнитьПоСтруктуре(ВходящийПараметр);
ИначеЕсли ТипЗнч(ВходящийПараметр) = Тип("Документ.Ссылка.ВажныйДокумент") Тогда
Результат = ЗаполнитьПоДокументу(ВходящийПараметр);
КонецЕсли;
Правильно:
Если ТипЗнч(ВходящийПараметр) = Тип("Структура") Тогда
Результат = ЗаполнитьПоСтруктуре(ВходящийПараметр);
ИначеЕсли ТипЗнч(ВходящийПараметр) = Тип("Документ.Ссылка.ВажныйДокумент") Тогда
Результат = ЗаполнитьПоДокументу(ВходящийПараметр);
Иначе
ВызватьИсключение "Передан параметр неверного типа";
КонецЕсли;
Сниппеты¶
Экранирование кода¶
// BSLLS:IfElseIfEndsWithElse-off
// BSLLS:IfElseIfEndsWithElse-on
Параметр конфигурационного файла¶
"IfElseIfEndsWithElse": false