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

Недопустимая категория исключений (BadExceptionCategory)

Тип Поддерживаются
языки
Важность Включена
по умолчанию
Время на
исправление (мин)
Теги
Дефект кода BSL Информационный Да 5 badpractice

Описание диагностики

Недопустимо использование абстрактных, общих или системных категорий ошибок при генерации исключений в функциональной форме ВызватьИсключение (или Raise).

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

Вместо общих групп всегда следует выбирать максимально точные прикладные категории ошибок (например, КатегорияОшибки.ОшибкаКонфигурации, КатегорияОшибки.НедопустимоеЗначениеПараметра и т.д.).

Диагностика проверяет второй параметр оператора и сообщает о нарушении, если там указана одна из следующих запрещенных категорий: * ВсеОшибки / AllErrors * ПрочаяОшибка / OtherError * ОшибкаКомпиляцииВстроенногоЯзыка / ScriptCompilationError * ОшибкаВоВремяВыполненияВстроенногоЯзыка / ScriptRuntimeError * ИсключениеВызванноеИзВстроенногоЯзыка / ScriptRaisedException

Примеры

Неправильно

// Использование слишком общей или абстрактной категории ошибки
ВызватьИсключение("Не удалось подключиться к сервису", КатегорияОшибки.ВсеОшибки);
Raise("Invalid data format", ErrorCategory.OtherError);
Правильно
// Указание конкретной прикладной категории ошибки
ВызватьИсключение("Не удалось подключиться к сервису", КатегорияОшибки.Сеть);
Raise("Invalid data format", ErrorCategory.ConfigurationError);

Источники

Источник: 1С:Предприятие 8.3.21. Документация. Глава 4. Встроенный язык. 4.6.10.2. Вызвать исключение

Сниппеты

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

// BSLLS:BadExceptionCategory-off
// BSLLS:BadExceptionCategory-on

Параметр конфигурационного файла

"BadExceptionCategory": false