Item 58. 복구 가능 상태에는 점검지정 예외를 사용하고, 프로그래밍 오류에는 실행지점 예외를 이용하라.

자바는 세가지 종류의 “throwable”을 제공한다.

  1. 점검지정 예외(checked exception) : 호출자(caller)측에서 복구할 것으로 여겨지는 상황에서 사용, 즉 클라이언트 측에서 복구 권한을 줌
  2. 실행시점 예외(runtime exception) : 프로그래밍 오류를 표현할 때는 실행시점 예외를 사용, 일반적으로 선행조건 위반(precondition violation)을 나타냄, ArrayIndexOutOfBoundsExeption
  3. 에러(error) : JVM자원 부족(resource deficiency)이나 불변식 위반(invariant failure)등에 사용

사용자 정의 무점검 throwable은 RuntimeException의 자식 클래스로 만들어야 한다.