在 Spring 中,如果希望 @Transactional 注解方法内部的异常都能够被捕获处理,应该如何设计事务回滚与异常处理策略?
考察说明
考察事务边界、异常传播与回滚机制的正确理解
回答思路
- 说明 @Transactional 默认对 RuntimeException 回滚,对 checked exception 不回滚
- 提出通过 rollbackFor 属性指定回滚异常类型
- 讨论 try-catch 捕获异常后可能导致事务无法回滚的问题及解决方案
- 区分事务边界与业务异常处理边界,说明不要在事务方法内吞掉需回滚的异常
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。