[Java] Checked Exception vs Unchecked (Runtime) Exception

dustle·2023년 5월 30일
1
post-thumbnail

자바에서 예외는 세 가지가 있습니다.
1. Error
2. Unchecked(Runtime) Exception
3. Checked Exception


그림 출처 : https://www.nextree.co.kr/p3239

1. Error

errorexception 의 가장 큰 차이는 프로그램 안에서 발생했는지 밖에서 발생했는지의 여부입니다.

에러는 자바 프로그램 밖에서 발생한 예외를 말합니다.
가장 흔한 예로 서버의 디스크가 고장났거나 메인보드 문제로 자바 프로그램이 동작하지 못하는 경우가 있습니다.

2. Runtime(Unchecked) Exception

Runtime Exception 은 예외가 발생할 것을 미리 감지하지 못했을 경우 발생합니다. NullPoint Exception 은 대표적인 Runtime Exception 으로 컴파일 시에는 발생하지 않지만 실행하면 발생할 가능성이 있습니다.
이 처럼 런타임에 발생하는 에러를 Runtime Exception 이라 하며 컴파일 시 체크하지 않기 때문에 Unchecked Exception 이라고도 합니다.
에러 처리를 강제하며 RollBack 이 됩니다.

Transactional 클래스의 rollbackFor() 메소드 위에 설명을 보면 디폴트 값으로 RuntimeException 만 rollback 시킨다고 적혀있습니다.

3. Checked Exception

Checked ExceptionException 클래스를 바로 확장한 클래스들입니다.
컴파일 시점에 확인하며 IOException, SQLException 등이 있습니다.
에러 처리를 강제하지 않으며 RollBack 이 되지 않고 트랜잭션이 commit 까지 완료합니다.

참고
https://www.nextree.co.kr/p3239/
https://wildeveloperetrain.tistory.com/218

0개의 댓글