
(해당 이미지 링크)
자바에서는 문제 상황을 알리는 타입으로 세가지를 제공한다. 다음과 같다.
검사 예외
- 컴파일 단계에서 체크해야 하는 예외
- 컴파일 : 코드 작업후 프로그램이 실행 가능한 상태로 변환되는 과정
- Exception 하위 클래스중 Runtime 을 제외한 예외
- Runtime 에러는 런타임시에 처리해야 하기 때문에 비검사 예외임
- 호출하는 쪽에서 복구하리라 여겨지는 상황이라면 검사 예외를 사용하자
- 예외 상황 발생시 복구에 필요한 정보를 알려주는 메서드 제공 필요
비검사 예외 : 런타임 예외, 에러
- 런타임시에 처리해야 하는 예외
- 런타임 : 실행 가능한 프로젝트가 동작되는 때
- 프로그램에서 잡을 필요가 없거나 통상적으로는 잡지 말아야 하는 에러
- 적절한 오류 메시지를 내뱉으며 중단
런타임 예외
- exception > runtimeException 프로그램 동작 중에 발생되는 에러
- 프로그래밍 오류를 나타낼 때는 런타임 예외를 사용
- ArrayIndexOutOfBoundsException : arr[-1] 호출 : 배열 전제조건을 위반
에러
- JVM 자원 부족, 불변식 깨짐 등 수행을 계속할 수 없는 상황에서 발생
구현하는 비검사 예외는 런타임 예외로
- 즉, Error를 상속받아 구현하는 것이 아니라 RuntimeException의 하위 클래스여야 한다.
Throwable은 언제 사용?
- 검사예외도 아니고 비검사예외도 아닌 Throwable..
- 이로울게 없으니 절대 사용 금지!
이어지는 이야기 : 필요 없는 검사 예외 사용은 피하라