inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

이펙티브 자바 완벽 공략 1부

아이템 2. 완벽 공략 9 - IllegalArgumentException

IllegalArgumentException 에 대해

1417

인프런

작성한 질문수 2

5

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

java

답변 1

12

백기선

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

JAR파일 dependency 관련하여 질문드립니다.

0

250

2

선생님 작성한 정적 팩토리 메서드에 대해 의견 주실 수 있으실까요??

0

315

2

책에 쓰여 있는 스레드 안전에 대한 제 생각

0

309

2

프로젝트 설정 관련 질문

0

769

1

브릿지 패턴과 서비스 제공자 프레임워크 관계

0

285

1

[과제] EnumMap과 EnumSet가 HashMap과 HashSet보다 효율적인 이유

0

555

1

정적팩토리메소드와 ServiceLoader는 무슨 관계인가요?

0

353

1

강의 제목 오타 발견!!! 뚜둥

0

290

1

mvn install

1

463

1

강의 코드

0

496

2

Builder 필수값 질문입니다.

0

1056

1

Elvis, IElvis 질문이 있습니다.

0

483

1

EnumMap, EnumSet 정리

0

1009

1

HelloService 구현체

0

412

1

[과제] 강의 너무 만족스럽습니다.

0

724

1

PhantomReference 가 소멸되는 시점을 보는 코드 부분이 약간 이상한것 같습니다.

1

560

2

안녕하세요

2

693

1

객체 소멸에 관한 질문

0

553

0

정적 팩토리 메서드에 대해 질문이 있습니다.

0

548

0

Mock test 관련 질문입니다!

0

545

1

안녕하세요 선생님, 강의를 보고나서 Optional 소스코드를 뜯어보다가 어려운 부분이 있어서 질문 드립니다.

2

533

2

기선님 질문있습니다..

0

385

1

intellij의 equals 자동 생성 기능

1

529

1

Builder에 default값 추가하기

0

311

1