Exception

태그
Java
날짜
2024/07/07
2 more properties

Exception.class

모든 예외 클래스의 슈퍼 클래스 이다.
명시적 예외 처리 여부에 따라서 Checked ExceptionUnchecked 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 형식입니다.