체크 예외(Checked Exception)

체크 예외는 RuntimeException의 하위 클래스가 아니면서 Exception 클래스의 하위 클래스들입니다.

체크 예외의 특징은 반드시 에러 처리를 해야하는 특징(try/catch or throw)을 가지고 있습니다.

언체크 예외(Unchecked Exception)

언체크 예외는 RuntimeException의 하위 클래스들을 의미합니다. 이것은 체크 예외와는 달리 에러 처리를 강제하지 않습니다.

말 그대로 실행 중에(runtime) 발생할 수 있는 예외를 의미합니다.

<aside> 💡 만약 언체크 예외가 에러 처리를 강제해야 했다면 아래와 같은 상황이 발생할 것입니다.

publicclassArrayTest {
publicstaticvoidmain(String[] args) {
try {
int[] list = {1, 2, 3, 4, 5};
            System.out.println(list[0]);
        }catch (ArrayIndexOutOfBoundsException e) {
            e.printStackTrace();
        }
    }
}

단순히 배열을 만들어 배열의 원소를 출력하고자 하는데 try/catch문을 꼭 사용해야 합니다.

</aside>

try catch를 언제 써야하는지 기준?

내가 사용하고자 하는 API가 명시적으로 예외를 던지는 경우가 있습니다. (이를 checked exception 이라고 합니다).

이런 API를 사용할 때에는 반드시 try~catch로 감싸야 합니다. 예외를 처리하지 않으면 컴파일러가 컴파일 오류로 판단하기 때문입니다.