들어가며
함수를 재사용하는것 만큼이나 예외의 재사용도 중요하다. 자바에서는 충분한 많은 수의 예외를 제공한다. 다음은 많이 사용하는 예외의 표이다.
예외 | 쓰임 |
---|---|
IllegalArgumnetException | 허용하지 않는 값이 인수로 건네졌을 때(null은 NullPointerException으로 처리) |
IllegalStateException | 객체가 메소드를 수행하기에 적절하지 않은 상태일 때 |
IndexOutOfBoundsException | null을 허용하지 않는 메소드에 null을 건넸을 때 |
ConcurrentModificationException | 허용하지 않는 동시 수정이 발견됬을 때 |
UnsupportedOperationException | 호출한 메소드를 지원하지 않을 때 |
특수한 상황에는 특수한 예외를 사용할 수 도있다. 예를 들어 복소수나 유리수를 다룬다면 ArithmeticException
이나 NumberFormatException
을 사용할 수 있다. 상황에 부합한다면 항상 표준 예외를 재사용하자. 이때 API 문서를 참고해 그 예외가 어떤 상황에서 던져지는지 확인해야 한다. 예외의 이름뿐만 아니라 던져지는 맥락도 부합할 때만 재사용한다. 더 많은 정보를 제공하길 원한다면 표준 예외를 확장해도 좋다.
Exception, RuntimeException, Throwable, Error은 직접 재사용하지 말자. 이는 여러 성격의 예외들을 포괄하는 클래스이므로 안정적으로 테스트할 수 없다.