checked, unchecked와 사용자 예외의 선택 기준을 나란히 비교한다
비교 항목: checked 예외는 catch 또는 throws를 요구한다 / 사용자 예외는 업무 문맥을 담는다 / 예외 계층은 catch 전략만큼만 세분화한다
| 확인 질문 | 판단 근거 | 코드에서 드러낼 것 |
|---|---|---|
| checked 예외는 catch 또는 throws를 요구한다 | IOException처럼 메서드 선언에 드러나 호출자가 처리 경로를 결정합니다. | 타입과 시작값 |
| 사용자 예외는 업무 문맥을 담는다 | 낮은 수준 SQLException을 그대로 노출하기보다 어떤 주문 저장이 실패했는지 식별자와 원인을 함께 보존할 수 있습니다. | 실패 또는 변경 경계 |
| 예외 계층은 catch 전략만큼만 세분화한다 | 호출자가 다르게 대응하지 않는 여러 하위 예외를 만들면 복잡도만 늘어납니다. | 선택한 규칙의 결과 |
선택 기준 호출자가 다르게 대응하지 않는 여러 하위 예외를 만들면 복잡도만 늘어납니다.