Effective Java | #70. 복구할 수 있는 상황에는 검사 예외를, 프로그래밍 오류에는 런타임 예외를 사용하라

보람·2022년 5월 14일
0

Effective-Java

목록 보기
24/25


(해당 이미지 링크)

자바에서는 문제 상황을 알리는 타입으로 세가지를 제공한다. 다음과 같다.

검사 예외

  • 컴파일 단계에서 체크해야 하는 예외
    • 컴파일 : 코드 작업후 프로그램이 실행 가능한 상태로 변환되는 과정
  • Exception 하위 클래스중 Runtime 을 제외한 예외
    • Runtime 에러는 런타임시에 처리해야 하기 때문에 비검사 예외임
  • 호출하는 쪽에서 복구하리라 여겨지는 상황이라면 검사 예외를 사용하자
  • 예외 상황 발생시 복구에 필요한 정보를 알려주는 메서드 제공 필요

비검사 예외 : 런타임 예외, 에러

  • 런타임시에 처리해야 하는 예외
    • 런타임 : 실행 가능한 프로젝트가 동작되는 때
  • 프로그램에서 잡을 필요가 없거나 통상적으로는 잡지 말아야 하는 에러
  • 적절한 오류 메시지를 내뱉으며 중단

런타임 예외

  • exception > runtimeException 프로그램 동작 중에 발생되는 에러
  • 프로그래밍 오류를 나타낼 때는 런타임 예외를 사용
  • ArrayIndexOutOfBoundsException : arr[-1] 호출 : 배열 전제조건을 위반

에러

  • JVM 자원 부족, 불변식 깨짐 등 수행을 계속할 수 없는 상황에서 발생

구현하는 비검사 예외는 런타임 예외로

  • 즉, Error를 상속받아 구현하는 것이 아니라 RuntimeException의 하위 클래스여야 한다.

Throwable은 언제 사용?

  • 검사예외도 아니고 비검사예외도 아닌 Throwable..
  • 이로울게 없으니 절대 사용 금지!

이어지는 이야기 : 필요 없는 검사 예외 사용은 피하라

profile
백엔드 개발자

0개의 댓글