Dev/Java
[Java] IllegalArgumentException vs. IllegalStateException
yo0oni
2023. 8. 18. 03:22
요즘 코드를 작성하면서 예외처리에 집중했는데, 그 과정에서 IllegalArgumentException를 매우 매우 자주 작성했다. 그러다 보니 IllegalStateException가 있다는 건 알고 있는데 언제 쓰는 거지? 라는 생각이 들며 궁금해졌다. 그래서 두 예외의 차이를 찾아보았다.
IllegalArgumentException
적절하지 않거나 유효하지 않은 데이터를 받았을 때 발생되는 예외
양수를 파라미터로 기대하고 있었는데 음수가 넘어왔을 때나 API를 통해 넘어온 값이 올바르지 않을 때 발생
(파라미터에 따른 예외처리를 많이 하기 때문에 이 예외를 훨씬 자주 쓰는 듯 하다)
IllegalStateException
죽은 스레드로부터 불려지는 경우와 같이 불려져서는 안될 시간에 메소드가 호출될 때 발생되는 예외
불가변한 수가 변경되려고 하거나 객체가 잘못된 상태에 있을 때 메서드를 실행시키려고 했을 때 발생
참고