IT/Programming / / 2023. 4. 26. 13:32

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

반응형

 

자바의 세가지 종류의 'throwable'

· 점검 지정 예외(checked exception)

ㄴ 반드시 처리해야하며 컴파일 시점에 확인된다.

ㄴ ex) exception의 상속 받는 하위 클래스 중 Runtime Exception을 제외한 모든 예외

· 실행 시점 예외(runtime exception)

ㄴ 명시적으로 처리하지 않아도 되며 런타임 시점에 확인된다.

ㄴ ex) runtime exception 하위 예외

· 오류(error)

점검지정 예외 언제 사용해야 하나?

· 호출자(caller)측에서 복구할 것으로 여겨지는 상황에 대해서는 점검지정 예외를 이용해야 한다.

· 점검 지정 예외를 던지는 곳은 해당 예외를 catch절에서 처리

 

무점검 예외와 실행시점예외는 오류 두가지가 있다.

· 둘다 catch로 처리할 필요가 없으며 일반적으로 처리해서도 안된다.

· 프로그램이 무점검 예외나 오류를 던진다는것은 일반적으로 복구가 불가능한 상황에 직면한 것.

 throwable을 catch하지 않는 스레드는 적절한 오류 메세지를 내면서 halt한다.

 

프로그래밍 오류를 표현할 때에는 실행시점 예외를 사용하라.

· 클라이언트가 API명세에 기술된 규약을 지키지 않았을 때를 나타냄

· 배열이 0, -1길이가 존재할때 위반되면 ArrayIndexOutOfBoundsException

 

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

 

메모리가 바닥났을 경우에는 무슨 예외 처리를 해야 하나?

· 복구 가능하다면 점검 지정 예외 처리

· 아니면 실행 시점 예외, 잘 모르겠으면 무점검 예외

 

결론

· 복구 가능한 상태에서는 점검지정 예외를 사용하고 프로그래밍 오류를 나타내고 싶을 때는 실행 시점 예외 처리한다.

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유