카테고리 없음

[Effective Java] Item72. 표준 예외를 사용하라

📝 작성 : 2022.08.25  ⏱ 수정 : 
728x90

표준 예외 재사용의 장점

  1. 다른 사람이 API를 익히고 사용하기 쉬워집니다.
  2. 낯선 예외를 사용하지 않으므로 코드의 가독성이 높아집니다.
  3. 예외 클래스의 수가 적을수록 메모리 사용량도 줄고 클래스 로딩시간도 줄어듭니다.

많이 사용되는 예외

IllegalArgumentException

  • 메서드의 파라미터로 부적절한 값이 들어왔을 때 던지는 예외입니다.
  • null이 들어오면 관례상 NullPointerException 예외를 사용합니다.
  • 시퀀스 허용범위를 넘기는 경우 IndexOutOfBoundsException 예외를 사용합니다.

IllegalStateException

  • 객체의 상태가 호출된 메서드의 수행에 부적합할 때 사용합니다.(초기화되지 않은 객체를 사용하려 할 때)

ConcurrentModificationException

  • 단일스레드에서 사용하려고 설게한 객체를 여러 스레드가 동시에 수정하려고할 때 사용합니다.
  • 동시 수정을 안정적으로 검출할 방법이 없기 때문에 일반적으로 문제가 생길 가능성 정도만 알려주는 역할로 쓰입니다.

UnsupportedOperationException

  • 클라이언트가 호출한 메서드를 지원하지 않을 때 사용합니다.

ArithmeticException

  • 복소수나 유리수를 다루는 개체를 다룰 때 사용합니다.
  • 10/0과 같은 연산을 수행하려는 경우 사용합니다.

NumberFormatException

  • 복소수나 유리수를 다루는 개체를 다룰 때 사용합니다.
  • Integer 자리에 String이 오는경우 사용할 수 있습니ㅏㄷ.

예외 재사용시 주의사항

  • Exception, RuntimeException, Throwable, Error는 직접 재사용하면 안됩니다.
  • 예외는 이름뿐만 아니라 예외의 맥락이 부합할 때만 예외를 재사용합니다.
  • 예외는 직렬화 할 수 있습니다. 직렬화에는 많은 부담이 따르므로 나만의 예외가 꼭 필요한지 생각해서 사용합니다.
반응형