자바 예외 클래스 계층 구조
실행하기 전 예측 가능한 예외 가능한 예외를 의미하고, 컴파일 시점
에 알 수 있는 예외이다.
검사 예외가 발생할 경우 컴파일 오류가 발생되므로, 반드시 처리해야 된다.(강제화) → 안정성을 높여줌.
대표적인 예로, IOException, SQLException 등이 있다.
try-catch-finally, try-with-resources
두 구문 모두 자바에서 외부 자원을 사용한 뒤 자원을 닫을 때 사용한다.
try-catch-finally
구문에서 사용한 자원이 많을 경우, 해제 코드가 길어지고 누락될 수 있는 문제가 있다.
try-with-resources
구문 사용 시, try에 사용할 자원 객체를 선언하면 try 코드 블록이 끝나면 자동으로 자원을 해제시켜 준다. 즉 catch, finally 구문에서 자원할당 처리를 하지 않아도 된다.
단, try에 선언할 수 있는 객체는 AutoCloseable
인터페이스의 구현체로 한정된다.
실행하기 전까지 예측 불가능한 예외를 의미하고, 런타임 시점
에 알 수 있는 예외이다.
예외를 처리할 필요가 없거나 혹은 통상적으로 잡지 않는다.
대표적인 예로, NullPointerException, ArrayIndexOutOfBoundException 등이 있다.