자바에서 예외는 세 가지가 있습니다.
1. Error
2. Unchecked(Runtime) Exception
3. Checked Exception
그림 출처 : https://www.nextree.co.kr/p3239
error
과 exception
의 가장 큰 차이는 프로그램 안에서 발생했는지 밖에서 발생했는지의 여부입니다.
에러는 자바 프로그램 밖에서 발생한 예외를 말합니다.
가장 흔한 예로 서버의 디스크가 고장났거나 메인보드 문제로 자바 프로그램이 동작하지 못하는 경우가 있습니다.
Runtime Exception
은 예외가 발생할 것을 미리 감지하지 못했을 경우 발생합니다. NullPoint Exception
은 대표적인 Runtime Exception
으로 컴파일 시에는 발생하지 않지만 실행하면 발생할 가능성이 있습니다.
이 처럼 런타임에 발생하는 에러를 Runtime Exception
이라 하며 컴파일 시 체크하지 않기 때문에 Unchecked Exception
이라고도 합니다.
에러 처리를 강제하며 RollBack 이 됩니다.
Transactional
클래스의 rollbackFor() 메소드 위에 설명을 보면 디폴트 값으로 RuntimeException
만 rollback 시킨다고 적혀있습니다.
Checked Exception
은 Exception
클래스를 바로 확장한 클래스들입니다.
컴파일 시점에 확인하며 IOException, SQLException 등이 있습니다.
에러 처리를 강제하지 않으며 RollBack 이 되지 않고 트랜잭션이 commit 까지 완료합니다.
참고
https://www.nextree.co.kr/p3239/
https://wildeveloperetrain.tistory.com/218