• 자바에서 문제 상황을 알리는 타입(throwable)
    • 검사 예외
    • 런타임 예외
    • 에러
  • 어떤 상황에서 어떤 throwable을 사용해야할까??

 

 

호출하는 쪽에서 복구하리라 여겨지는 상황이라면 검사 예외

  • 검사와 비검사 예외를 구분하는 기본 규칙

  • 검사 예외를 던지면 호출자가 그 예외를 catch로 잡아 처리하거나 더 바깥으로 전파하도록 강제하게 된다.
  • 따라서 메소드 선언에 포함된 검사 예외 각각은 그 메소드를 호출했을 때 발생할 수 있는 유력한 결과
  • 검사 예외의 예시는 중복된 아이디를 입력한 경우에 프로그램을 중단시키는 것이 아닌 다른 아이디를 입력하게끔 유도하라는 의미이다.

 

비검사 throwable

  • 런타임 예외와 에러를 뜻함
  • 이 둘은 프로그램에서 잡을 필요가 없거나 혹은 통상적으로 잡지 말아야 한다.

 

프로그래밍 오류를 나타낼 때는 런타임 예외

  • 런타임 예외의 대부분은 전제조건을 만족하지 못했을 때 발생
  • 클라이언트가 해당 API의 전제조건을 만족하지 못했음을 뜻함

 

에러는 보통 JVM이 자원부족, 불변식 깨짐 등 더 이상 수행을 계속할 수 없는 상황을 나타낼 때 사용

 

 

 

 

  • 검사 예외도 아니고 런타임 예외도 아닌 throwable은 정의하지 말자
  • 검사 예외라면 복구에 필요한 정보를 알려주는 메소드도 제공하라

+ Recent posts