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

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

IllegalArgumentException을 무조건 400으로 매핑하면 서버 오류를 클라이언트 문제로 오인할 수 있습니다. 명백한 클라이언트 오류는 커스텀 예외로 분리해 4xx와 5xx를 구분하는 것이 좋습니다.

코틀린 코루틴의 예외가 부모-자식 관계를 따라 전파되며 전체 취소로 이어지는 과정을 설명했습니다. 실무에서는 발생 지점 처리와 supervisorScope 같은 방법으로 전파 범위를 조절하는 방식이 필요합니다.

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


9개 언어의 nullable, 합·곱 타입, 패턴 매칭을 타입 이론 관점에서 비교했습니다. 상속과 예외 처리의 한계를 살피고 컴포지션·Result 기반 설계를 제안합니다.