
코드 품질 개선 기법 20편: 이례적인 예외 과대 포장
리소스 해제용 `use` 구현에서 블록 예외와 정리 예외가 동시에 날 수 있음을 다뤘습니다. 예외를 새로 감싸기보다 우선순위를 정하고 suppressed 예외를 활용하라고 제안했습니다.
#Kotlin#Java
130005분

리소스 해제용 `use` 구현에서 블록 예외와 정리 예외가 동시에 날 수 있음을 다뤘습니다. 예외를 새로 감싸기보다 우선순위를 정하고 suppressed 예외를 활용하라고 제안했습니다.


Spring @Transactional 의 롤백이 언제 마킹되는지 예외 타입과 프록시 동작을 기준으로 정리했습니다. Kotlin 과 REQUIRES_NEW 까지 포함해 실제 동작 차이와 주의점을 설명했습니다.

에러 표현 방식은 복구 가능성과 호출자 처리 범위에 맞춰 선택해야 한다고 설명했습니다. 예시 코드에서는 입력 오류와 구현 실수를 다른 방식으로 분리해 개선했습니다.