자바 예외 클래스 계층 구조

자바 예외 클래스 계층 구조

검사 예외(CheckedException)

실행하기 전 예측 가능한 예외 가능한 예외를 의미하고, 컴파일 시점에 알 수 있는 예외이다.

검사 예외가 발생할 경우 컴파일 오류가 발생되므로, 반드시 처리해야 된다.(강제화) → 안정성을 높여줌.

대표적인 예로, IOException, SQLException 등이 있다.

사용시기

try-catch-finally, try-with-resources

두 구문 모두 자바에서 외부 자원을 사용한 뒤 자원을 닫을 때 사용한다.

try-catch-finally 구문에서 사용한 자원이 많을 경우, 해제 코드가 길어지고 누락될 수 있는 문제가 있다.

try-with-resources 구문 사용 시, try에 사용할 자원 객체를 선언하면 try 코드 블록이 끝나면 자동으로 자원을 해제시켜 준다. 즉 catch, finally 구문에서 자원할당 처리를 하지 않아도 된다.

단, try에 선언할 수 있는 객체는 AutoCloseable 인터페이스의 구현체로 한정된다.

비검사/런타임 예외(UnCheckedExcepion)

실행하기 전까지 예측 불가능한 예외를 의미하고, 런타임 시점에 알 수 있는 예외이다.

예외를 처리할 필요가 없거나 혹은 통상적으로 잡지 않는다.

대표적인 예로, NullPointerException, ArrayIndexOutOfBoundException 등이 있다.