星海

Spring · 单选题 · 第 52 题

Java 后端开发面试 · 第 52 题

@Transactional 不做任何配置时,方法抛出哪类异常会触发回滚?

  1. ARuntimeException 和 Error
  2. B所有 Exception,包括受检异常在内
  3. C只有 SQLException 及其子类
  4. D任何异常都不会触发回滚

答案

A A. RuntimeException 和 Error

解析

Spring 默认认为受检异常是业务上可预期的,不回滚。如果业务抛出受检异常也希望回滚,要写 @Transactional(rollbackFor = Exception.class)。还有一个常见坑:在方法里 catch 住异常却不再抛出,事务感知不到异常,也就不会回滚。

在线刷这套题:即时判分、错题本、闪卡复习,不用登录就能练。