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

Неправильное использование метода "ОтменитьТранзакцию"

При использовании транзакций необходимо предусмотреть обработку исключений, в блоке Исключение нужно сначала вызвать метод ОтменитьТранзакцию(), а затем выполнять другие действия, если они требуются. Соблюдение данного правила защитит от возможного выброса исключения до отмены транзакции.

Неправильно:

НачатьТранзакцию();
Попытка
    ДокументОбъект.Записать();
    ЗафиксироватьТранзакцию();
Исключение
    ЗаписатьВЛогОшибку();   // Ошибка
    ОтменитьТранзакцию(); 
КонецПопытки;

Правильно:

НачатьТранзакцию();
Попытка
    ДокументОбъект.Записать();
    ЗафиксироватьТранзакцию();
Исключение
    ОтменитьТранзакцию();   // Сначала отменяем транзакцию, потом делаем всё остальное 
    ЗаписатьВЛогОшибку();
КонецПопытки;

См. также

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

// sonar:WrongUsageOfRollbackTransactionMethod:off
// sonar:WrongUsageOfRollbackTransactionMethod:on