Exception 발생 시 transaction처리 기본 전략

김형진·2023년 6월 27일
0

스프링은 트랜잭션 내에서 발생한 예외에 대해

CheckedException과 UncheckedExcepion에 대해 각각 다른 기본 전략을 취한다.

  1. 트랜잭션 내 CheckedExcpetion발생 시

체크드 익셉션은 보통 예상범주에서 발생하기 때문에, 회복가능한 예외로 판단하여 기본적으로는 롤백이 실행되지 않는다.

  1. 트랜잭션 내 UncheckedExcepion 발생 시

기본적으로 롤백이 실행된다.
UncheckedExcepion는 보통 예상치 못하게 발생한 예외이므로 회복이 불가능하다 판단하여 Spring에서는 기본적으로 예외 발생 시 롤백 전략을 취한다.
트랜잭션 내 예외처리 구문이 있더라도, 트랜잭션 관리자는 UncheckedExcption의 발생 여부를 알기 때문에 무조건 롤백된다.

하지만 이는 어디까지나 Spring의 기본 전략일 뿐, 실무에서는 비즈니스에 따라 Transaction의 RollbackFor / noRollbackFor옵션을 통해 에외에 대한 대응 전략이 달라질 수 있다.

profile
히히

0개의 댓글