우테코 프리코스를 진행하면서 IllegalArgumentException
을 정말 많이 사용했던 경험이 있다.
후에는 점점 습관적으로 IllegalArgumentException
을 사용했던 것 같다.
그런데 이번에 스프링 강의를 들으면서 IllegalStateException
을 접하게 되었고, 두 예외 처리의 차이점이 무엇인지 궁금해졌다.
그래서 두 예외 처리의 차이점을 예시와 함께 정리해보았다.
// 사용자의 입력이 형식에 어긋난 경우의 예외처리
private void validatePrice() {
if (price > MINIMUM_PRICE) {
throw new IllegalArgumentException("최소 금액은 100원 이상이어야 합니다.");
}
}
// 중복된 이름이 존재하는 경우의 예외처리
private void validateDuplicateMember(Member member) {
memberRepository.findByName(member.getName())
.ifPresent(member1 -> {
throw new IllegalStateException("이미 존재하는 회원입니다.");
});
}