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

들어가며

함수를 재사용하는것 만큼이나 예외의 재사용도 중요하다. 자바에서는 충분한 많은 수의 예외를 제공한다. 다음은 많이 사용하는 예외의 표이다.

예외 쓰임
IllegalArgumnetException 허용하지 않는 값이 인수로 건네졌을 때(null은 NullPointerException으로 처리)
IllegalStateException 객체가 메소드를 수행하기에 적절하지 않은 상태일 때
IndexOutOfBoundsException null을 허용하지 않는 메소드에 null을 건넸을 때
ConcurrentModificationException 허용하지 않는 동시 수정이 발견됬을 때
UnsupportedOperationException 호출한 메소드를 지원하지 않을 때

특수한 상황에는 특수한 예외를 사용할 수 도있다. 예를 들어 복소수나 유리수를 다룬다면 ArithmeticException이나 NumberFormatException을 사용할 수 있다. 상황에 부합한다면 항상 표준 예외를 재사용하자. 이때 API 문서를 참고해 그 예외가 어떤 상황에서 던져지는지 확인해야 한다. 예외의 이름뿐만 아니라 던져지는 맥락도 부합할 때만 재사용한다. 더 많은 정보를 제공하길 원한다면 표준 예외를 확장해도 좋다.

Exception, RuntimeException, Throwable, Error은 직접 재사용하지 말자. 이는 여러 성격의 예외들을 포괄하는 클래스이므로 안정적으로 테스트할 수 없다.

Author: Song Hayoung
Link: https://songhayoung.github.io/2020/08/22/Languages/Effective%20JAVA/item72/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.