Item 72. 표준 예외를 사용하라.

Posted by yunki kim on April 17, 2022

  표준 예외를 재사용하는 것으로 얻을 수 있는 이점은 다음과 같다.

    1. 표준 예외는 많은 프로그래머에게 익숙한 규약을 따른다. 따라서 내가 작성한 API를 다른 사람이 익히고 사용하기

      쉬워진다.

    2. 예외 클래스 수가 적으면 메모리 사용량이 줄고 클래스를 적재하는 시간도 적게 걸린다.

  많이 사용되는 예외들은 다음과 같다.

예외 사용처
IllegalArgumentException 허용하지 않는 값이 인수로 건네졌을 때(null은 따로 NullPointerException 으로 처리)
IllegalStateException 객체가 메서드를 수행하기에 적절하지 않은 상태일 때
NullPointerExcetpion null을 허용하지 않는 메서드에 null을 건넸을 때
IndexOutOfBoundsException 인덱스가 범위를 넘어섰을 때
ConcurrentModificationException 허용하지 않는 동시 수정이 발견됐을 때. 단일 스레드에서 사용하려고 설계한 객체를 여러 스레드가 동시에 수정할 때 사용된다. 동시수정을 확실히 검출할 안정된 방법이 없기 때문에 문제가 생길 가능성을 알리는 정도로만 사용된다.
UnsupportedOperationException 호출한 메서드를 지원하지 않을 때
ArithmeticException, NumberFormatException 복소수, 유리수를 다루는 객체에서 발생한 예외

  Exception, RuntimeException, Throwable, Error 는 직접 재사용하지 말라. 이들을 추상 클래스라 생각하라. 이들은 다른 예외들의 상위 클래스이고 여러 성격의 예외들을 포괄하는 클래스다. 따라서 안정적인 테스트가 불가하다.

 

출처 - 이펙티브 자바