CH12-3 · MODEL

checked, unchecked와 사용자 예외: 먼저 구분할 경계

Java 예외는 컴파일러가 처리 선언을 요구하는 checked 예외와 그렇지 않은 unchecked 예외로 나뉩니다.

핵심 경계

checked 예외는 catch 또는 throws를 요구한다

IOException처럼 메서드 선언에 드러나 호출자가 처리 경로를 결정합니다.

핵심 경계

unchecked 예외도 계약에 포함된다

잘못된 인자나 불가능한 상태를 즉시 알리지만 문서와 검증 없이 남발하면 호출자가 실패 조건을 알기 어렵습니다.

핵심 경계

사용자 예외는 업무 문맥을 담는다

낮은 수준 SQLException을 그대로 노출하기보다 어떤 주문 저장이 실패했는지 식별자와 원인을 함께 보존할 수 있습니다.

핵심 경계 IOException처럼 메서드 선언에 드러나 호출자가 처리 경로를 결정합니다.