Недопустимая категория исключений (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