Dev/Java

[Java] IllegalArgumentException vs. IllegalStateException

yo0oni 2023. 8. 18. 03:22

요즘 코드를 작성하면서 예외처리에 집중했는데, 그 과정에서 IllegalArgumentException를 매우 매우 자주 작성했다. 그러다 보니 IllegalStateException가 있다는 건 알고 있는데 언제 쓰는 거지? 라는 생각이 들며 궁금해졌다. 그래서 두 예외의 차이를 찾아보았다.

 

 

IllegalArgumentException

적절하지 않거나 유효하지 않은 데이터를 받았을 때 발생되는 예외

양수를 파라미터로 기대하고 있었는데 음수가 넘어왔을 때나 API를 통해 넘어온 값이 올바르지 않을 때 발생

(파라미터에 따른 예외처리를 많이 하기 때문에 이 예외를 훨씬 자주 쓰는 듯 하다)

 

IllegalStateException

죽은 스레드로부터 불려지는 경우와 같이 불려져서는 안될 시간에 메소드가 호출될 때 발생되는 예외

불가변한 수가 변경되려고 하거나 객체가 잘못된 상태에 있을 때 메서드를 실행시키려고 했을 때 발생

 

 

 


참고

https://dodop-blog.tistory.com/m/290