• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

IllegalArgumentException 에 대해

22.04.11 14:06 작성 조회수 966

5

안녕하세요 기선님
제가 프로젝트를 하면서 해당 IllegalArgumentException, IllegalStateException 적절한 사용 범위에 대해서 의문을 가졌던 적이 있는데요.
 
기선님이 언급하셨듯 validation check 와
추가적으로 서비스로 전이되는 값이 기대하는 값이 아니여도 IllegalArgumentException 을 띄워도 되는건지 궁금합니다.
 
예를 들어
회원가입 컨트롤러에 signUpDto 를 통해 회원 정보를 받고 해당 Dto를 SignUpService의 인자로 넘겨 처리합니다.
그때 service가 이미 등록된 회원이라면 IllegalArgumentException 던져야 할지 IllegalStateException 을 던져야 할지 궁금합니다.
 
어떻게 보면 넘겨받은 인자로 처리할 수 없기 때문에 ArgException도 맞는 것 같고 해당 state를 처리할 수 없기 때문에 StateException도 맞는것 같아서 질문합니다.

답변 1

답변을 작성해보세요.

12

굳이 둘 중에 선택해야 한다면 저는 IllegalArgumentException이 더 어울리는것 같기도 하네요. 넘겨받은 매개변수가 잘못된 값을 가지고 있어서 발생한 문제니까요. IllegalStateException은 해당 메서드가 부적절한 시기에 호출됐다는 것인데, 회원 가입 처리하는 과정이 호출된 상황은 분명 적절한 시기였을테지만 그 안에 들어있던 데이터의 문제니까.. 저라면 IAE를 선택하겠습니다.