Home [Effective Java] Item72. 표준 예외를 사용하라!
Post
Cancel

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

Item72. 표준 예외를 사용하라!

Intro

  • 숙련된 프로그래머는 그렇지 못한 프로그래머보다 더 많은 코드를 재사용한다.
  • 예외도 마찬가지다. 재사용하는 것이 좋으며, 자바 라이브러리는 대부분 API에서 쓰기에 충분한 수의 예외를 제공한다.

표준 예외 사용의 장점

  • 작성한 API가 다른 사람이 익히고 사용하기 쉬워진다는 점이다.
  • 낯선 예외를 사용하지 않게 되어 가독성도 좋아진다.
  • 예외 클래스 수가 적을수록 메모리 사용량도 줄고 클래스를 적재하는 시간도 적게 걸린다.
  • 더 많은 정보를 제공하고 싶다면 표준 예외를 확장해도 좋다.
  • 예외는 직렬화가 가능하다. 직렬화에는 많은 부담이 따르니 이러한 사실만으로도 예외를 새로 만드는 것은 좋지 않다.

주의할 점

  • Exception, RuntimeException, Throwable, Error는 직접 재사용하지 말자.
    • 이 클래스들은 추상 클래스라고 생각하자.
    • 다른 예외들의 상위 클래스이므로 여러 성격의 예외를 포함하고 있어 안정적인 테스트가 불가능하다.

널리 사용되는 표준 예외

예외주요 쓰임
IllegalArgumentException허용하지 않는 값이 인수로 건네졌을 때 (null은 따로 처리됨)
IllegalStateException객체가 메서드를 수행하기 적절하지 않은 상태일 때
NullPointerExceptionnull을 허용하지 않는 메서드에 null을 건냈을 때
IndexOutOfBoundsException인덱스가 범위를 넘어섰을 때
ConcurrentModificationException허용하지 않는 동시 수정이 발견됐을 때
UnsupportedOperationException호출한 메서드를 지원하지 않을 때
ArithmeticException, NumberFormatException복소수나 유리수를 다룰 때
  • ‘주요 쓰임’ 열에 기입한 내용이 상호 배타적이니 않다. 그렇기에 종종 재사용할 예외를 선택하기 어려울 수 있다.
This post is licensed under younghwani by the author.

[Effective Java] Item71. 필요 없는 검사 예외 사용은 피하라!

[Effective Java] Item73. 추상화 수준에 맞는 예외를 던지라!

Comments powered by Disqus.