최초 업무 Throwable
SQL exception 또는 Runtime error가 transaction 실패를 시작한다.
rollback 또는 상태 복원 중 새 예외가 발생해도 최초 업무 실패를 덮지 않고 cleanup 실패를 suppressed chain에 붙인다.
SQL exception 또는 Runtime error가 transaction 실패를 시작한다.
rollback·state restore·close를 차례로 시도한다.
rollback 예외를 최초 cause에 추가한다.
autoCommit 복원 예외도 잃지 않는다.
resource 해제 오류를 함께 보존한다.
호출자에게 최초 업무 실패를 다시 던진다.
핵심: 조사 순서를 지키려면 업무 실패가 항상 primary이고 cleanup 실패는 보조 증거로 남아야 한다.