Exception.class
모든 예외 클래스의 슈퍼 클래스 이다.
명시적 예외 처리 여부에 따라서 Checked Exception과 Unchecked Exception으로 구분한다.
예외 | 일반 예외 (Checked Exception) | 실행 예외 (Unchecked Exception) |
정의 | Exception의 상속받는 하위 클래스 중 RuntimeException을 제외한 모든 Exception | RuntimeException을 상속받는 모든 Exception |
처리 여부 | try-catch문 필수 | try-catch문 생략가능 (필요에 따라 처리) |
확인 시점 | Compile Time 이미 컴파일 시점 에러가 표시되기 때문에 확인하여 예외처리 가능 | Runtime 컴파일 이후 런타임 도중 예외를 확인
(로직상으로는 생략이 가능하지만 미리 막아두는 것이 좋다.) |
트랜젝션 | 예외 발생 시 롤백(rollback) 진행 X | 예외 발생 시 롤백(rollback) 진행 O |
예제 | IOException, SQLException 등 | NullPointerException, NumberFormatException 등 |
Checked Exception
•
Runtime Exception을 상속하지 않는 예외 클래스
•
명시적인 예외처리를 강제한다. 때문에 Checked Exception이라 한다.
◦
반드시 try ~ catch로 예외를 잡거나, throw로 호출한 메소드에게 예외를 던져야 한다.
Unchecked Exception
•
Runtime Exception을 상속하는 예외 클래스
•
명시적 예외처리를 강제하지 않는다. 때문에 Unchecked Exception이라 한다.
Error와 Exception
Error
Error (에러)는 시스템에 비정상적인 상황이 발생한 경우에 해당한다.
Error는 합리적인 응용 프로그램이 잡아내려고 해서는 안 되는 심각한 문제를 나타내는 Throwable의 하위 클래스이다. 이러한 오류는 대부분 비정상적인 상태이다.
Exception
Exception (예외)는 입력 값에 대한 처리가 불가능하거나, 프로그램 실행 중 참조된 값이 잘못된 경우 등 정상적인 프로그램의 흐름이 어긋나는 경우를 말한다.
자바에서 예외는 개발자가 직접 처리할 수 있기 때문에, 예외 상황을 예측하여 핸들링 할 수 있다.
Exception 클래스와 그 하위 클래스는 합리적인 응용 프로그램이 포착할 수 있는 조건을 나타내는 Throwable 형식입니다.