코드를 재사용하는 것처럼 예외도 재사용하는 것이 좋다.
자바 라이브러리는 아래와 같이 충분한 수의 예외를 제공한다.

표준 예외 재사용 시 장점

  1. 개발자의 API가 다른 사람이 익히고 사용하기 쉬워진다는 것
  2. 개발자의 API를 사용한 프로그램도 낯선 예외를 사용하지 않게 되어 읽기 쉽게 됨
  3. 예외 클래스 수가 적을수록 메모리 사용량도 줄고 클래스를 적재하는 시간도 적게 걸림

널리 재사용되는 예외들

IllegalArumentException

  • 호출자가 인수로 부적절한 값을 넘길 때 던지는 예외
  • 예시) 반복 횟수를 지정하는 매개변수에 음수를 넘길 때

IllegalStateException

  • 대상 객체의 상태가 호출된 메서드를 수행하기에 적합하지 않을 때
  • 예시) 초기화 되지 않은 객체를 사용하려 할 때

NullPointerException

  • null값을 허용하지 않는 메서드에 Null을 건넬 때

IndexOutOfBoundsException

  • 어떤 시퀀스의 허용 범위를 넘는 값을 건넬 때

ConcurrentModificationException

  • 단일 스레드에서 사용하려고 설계한 객체를 여러 스레드가 동시에 수정하려 할 떄

UnsupportedOperationException

  • 클라이언트가 요청한 동작을 대상 객체가 지원하지 않을 때
  • 예시) 원소를 넣을 수만 있는 List 구현체에 remove 메서드를 호출할 때

주의사항

Exception, RuntimeException, Throwable, Error는 직접 재사용하지 말자.

이 클래스들은 다른 예외들의 상위 클래스(여러 성격의 예외들을 포함하는 클래스)이므로 안정적으로 테스트할 수 없기 때문이다.

댓글남기기