item 72) 표준 예외를 사용하라
표준 예외
자바 플랫폼 라이브러리에는 대부분의 API가 필요로 하는 기본적인 exception들을 제공하고 있다.
표준 예외를 사용하면 대부분의 프로그래머에게 익숙해진 규약을 따르는 것이다.
다른사람이 사용하기 쉬운 API를 만들 수 있다.
가독성이 좋아진다.
예외 클래스 개수가 적을수록 메모리 사용량이 줄고 클래스를 적재하는 시간도 적게 걸린다.
재사용되는 예외 종류
IllegalArgumentException: 호출자가 인수로 부적절한 값을 넘길 때
IllegalStateException: 대상 객체의 상태가 호출된 메서드를 수행하기에 적합하지 않을 때
NullPointerException: null 값을 허용하지 않는 메서드에 null을 건낼 때
IndexOutOfBoundsException: 어떠한 시퀀스의 허용 범위 넘을 때
ConcurrentModificationException: 단일 스레드에서 사용하려고 설계한 객체를 여러 스레드가 동시에 수정하려고 할 때
UnsupportedOperationException: 클라이언트가 요청한 동작을 대상 객체가 지원하지 않을 때
더 많은 정보를 제공하기를 원한다면 표준 예외를 확장해도 좋지만, 예외는 직렬화 할 수 있기 때문에 (Throwable은 Serializable을 구현하기 때문) 예외를 따로 커스텀하지 않는 것이 좋다.
애매한 예외 선택
주요 쓰임이 상호 배타적이지 않으므로, 재사용 가능 예외들 중 어떤 것을 선택해야 할 지 어려운 상황이 있다.
예를들어 인수 값이 무엇이었든 실패했을 거라면 IllegalStateException을, 아니라면 IllegalArgumentException을 던져야 한다.
Last updated