도메인 규칙 위반을 의미 있는 타입으로 알립니다.
처리 복구를 강제할 필요가 있는지에 따라 Exception 또는 RuntimeException을 상속합니다. 예외 메시지는 실패한 규칙을 구체적으로 설명하고 원인 예외를 생성자에 전달합니다.
validate(120)은 score > 100에 걸려 InvalidScoreException을 던지므로 try 안의 println은 건너뛰고, catch가 생성자에서 super로 넘긴 점수 범위 오류: 120을 getMessage로 꺼내 출력합니다. 이 예외는 RuntimeException을 상속한 unchecked 예외라 validate 선언에 throws를 적지 않아도 컴파일됩니다. 경계값 0과 100은 조건에 걸리지 않아 그대로 반환됩니다.
예외는 드문 실패 경로에 사용하고 정상적인 검색 결과 없음은 Optional 같은 반환 타입이 더 적절할 수 있습니다.
API 계층에서 도메인 예외를 안정적인 오류 코드와 HTTP 상태로 변환합니다.
오류를 알리기 위해 -1이나 null만 반환하면 호출자가 실패 이유를 잃습니다.
직접 바꿔보세요재고 부족 예외를 만들어보세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.