Встречается на собеседованиях • сегодня

Как обеспечить возврат транзакции при проверяемом исключении

В Java транзакции можно откатить при исключении с помощью @Transactional. По умолчанию откат происходит только при unchecked исключениях (RuntimeException). Для checked исключений нужно явно указать это в аннотации:

java
@Transactional(rollbackFor = Exception.class)
public void processPayment() throws PaymentException {
    // бизнес-логика
    if (errorCondition) {
        throw new PaymentException("Ошибка платежа"); // checked исключение
    }
}

Ключевые моменты:

  1. rollbackFor указывает, для каких исключений делать откат
  2. Можно указать несколько классов исключений: rollbackFor = {PaymentException.class, ValidationException.class}
  3. Для отключения отката используйте noRollbackFor

В Spring управление транзакциями обычно делегируется TransactionManager, который обрабатывает аннотации @Transactional.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы