Отсутствие логирования ошибки
Недопустимо перехватывать любые исключения бесследно для системного администратора. Как правило, подобная конструкция скрывает реальную проблему, которую впоследствии невозможно диагностировать.
Неправильно:
Попытка
// код, приводящий к вызову исключения
....
Исключение // перехват любых исключений
КонецПопытки;
Правильно:
Попытка
// код, приводящий к вызову исключения
....
Исключение
// Пояснение причин перехвата всех исключений "незаметно" от пользователя.
// ....
// И запись события в журнал регистрации для системного администратора.
ЗаписьЖурналаРегистрации(НСтр("ru = 'Выполнение операции'"),
УровеньЖурналаРегистрации.Ошибка,,,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
Если имеется некоторая клиентская бизнес-логика (код выполняется полностью на клиенте), то рекомендуется делать дополнительный серверный вызов для протоколирования неудачного результата операции в журнал регистрации:
Попытка
// клиентский код, приводящий к вызову исключения
СоздатьФайлНаДиске();
Исключение
ТекстСообщения = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
ПоказатьПредупреждение(,НСтр("ru = 'Операция не может быть выполнена по причине:'") + Символы.ПС + ТекстСообщения);
ЗаписатьОшибкуРаботыСФайлами(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
КонецПопытки;
&НаСервереБезКонтекста
Процедура ЗаписатьОшибкуРаботыСФайлами(...)
ЗаписьЖурналаРегистрации(НСтр("ru = 'Выполнение операции'"),
УровеньЖурналаРегистрации.Ошибка,,,
ПодробноеПредставлениеОшибки);
КонецПроцедуры
Особенности
- Параметр
exclusions
позволяет указать через запятую список имен методов, осуществляющих запись в журнал регистрации, если в проекте для логирования используются процедуры общих модулей или менеджеров. Процедура БСПДобавитьСообщениеДляЖурналаРегистрации
внесена в настройку по умолчанию.
См. также
Экранирование кода
// sonar:ExceptWithoutLog:off
// sonar:ExceptWithoutLog:on