개요
Checked Exception, Unchecked Excpetion 차이점 알아보기
ERROR? EXCEPTION?
Error(에러)
에러는 시스템에 비정상적인 상황이 발생한 경우에 해당한다.
ex) OutOfMemoryError, ThreadDeath, StackOverflowError 등이 에러에 해당
(일반적으로 애플리케이션단에서 복구할 수 없는 상황)
Error는 합리적인 응용 프로그램이 잡아내려고 해서는 안 되는 심각한 문제를 나타내는 Throwable의 하위 클래스입니다. 이러한 오류는 대부분 비정상적인 상태입니다.
https://docs.oracle.com/javase/6/docs/api/java/lang/Error.html
Exception(예외)
예외란 입력 값에 대한 처리가 불가능하거나, 프로그램 실행 중에 참조된 값이 잘못된 경우 등 정상적인 프로그램의 흐름을 어긋나는 경우를 말한다. 그리고 자바에서 예외는 개발자가 직접 처리할 수 있기 때문에 예외 상황을 미리 예측하여 핸들링할 수 있다.
Exception 클래스와 그 하위 클래스는 합리적인 응용 프로그램이 포착할 수 있는 조건을 나타내는 Throwable 형식입니다.
https://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html
예외 구분
예외는 Checked Exception과 Unchecked Exception으로 구분된다.
Checked Exception
- RuntimeException을 상속하지 않은 예외 클래스
- 명시적인 예외 처리를 강제하기 때문에 Checked Exception이라 한다.
반드시 try~catch로 예외를 잡거나, throw로 호출한 메소드에게 예외를 던져야 한다.
Unchecked Exception
- RuntimeException을 상속하는 예외 클래스
- 명시적인 예외 처리를 강제하지 않기 때문에 Uncheked Exception이라고 한다.
구분 | Checked Excpetion | Unchecked Exception |
확인 시점 | 컴파일(Compile) 시점 | 런타임(Runtime) 시점 |
예외 처리 | 명시적 예외 처리 강제 (반드시 예외 처리해야함) |
명시적 예외 처리 강제하지 않음 |
트랜잭션 처리 | 예외 발생시 롤백하지 않음 | 예외 발생시 롤백해야함 |
종류 | IOException, FileNotFoundException 등 | NullPointerException, ClasssCastException 등 |
Checked Exception이 Rollback되지 않는 이유
기본적으로 Checked Exception은 복구가 가능하다는 메커니즘을 가지고 있다.
예를 들어, 특정 이미지 파일을 찾아서 전송해 주는 함수에서 이미지를 찾지 못 했을 경우 기본 이미지를 전송한다는 복구 전략을 가질 수 있다. 정리하자면, 복구가 가능하니 Rollback은 진행하지 않는다는 의미이다.
'개발메모 > 간단정리' 카테고리의 다른 글
[간단정리] JAVA - 제네릭(Generic)이란? (0) | 2022.08.23 |
---|---|
[간단정리] 트랜잭션 격리수준(Isolation Level) (0) | 2022.08.13 |
[간단정리] DB 클러스터링, 리플리케이션이란? (0) | 2022.07.19 |
[간단정리] Redis(레디스)란? (0) | 2022.07.07 |
[간단정리] ELK? ELK Stack이란? (0) | 2022.07.05 |