요즘 코드를 작성하면서 예외처리에 집중했는데, 그 과정에서 IllegalArgumentException를 매우 매우 자주 작성했다. 그러다 보니 IllegalStateException가 있다는 건 알고 있는데 언제 쓰는 거지? 라는 생각이 들며 궁금해졌다. 그래서 두 예외의 차이를 찾아보았다.
IllegalArgumentException
적절하지 않거나 유효하지 않은 데이터를 받았을 때 발생되는 예외
양수를 파라미터로 기대하고 있었는데 음수가 넘어왔을 때나 API를 통해 넘어온 값이 올바르지 않을 때 발생
(파라미터에 따른 예외처리를 많이 하기 때문에 이 예외를 훨씬 자주 쓰는 듯 하다)
IllegalStateException
죽은 스레드로부터 불려지는 경우와 같이 불려져서는 안될 시간에 메소드가 호출될 때 발생되는 예외
불가변한 수가 변경되려고 하거나 객체가 잘못된 상태에 있을 때 메서드를 실행시키려고 했을 때 발생
참고
'Dev > Java' 카테고리의 다른 글
[Java] isPresent() vs. ifPresent() (0) | 2023.09.01 |
---|---|
[Java] pickNumberInRange ArrayIndexOutOfBoundsException (0) | 2023.08.23 |
[Java] IntelliJ 프로젝트 빌드 안 될 때 (Link Gradle Project) (1) | 2023.08.09 |
[Java] 예외 테스트 코드가 실행되지 않을 때 (try-catch) (0) | 2023.08.07 |
[Java] 일급 컬렉션(First Class Collection)이란? (0) | 2023.08.01 |