class EX {
public static void main(String[] args) {
throw new Exception();
}
}
Exception클래스를 상속받는 예외 클래스들
(RuntimeException 클래스를 상속받지 않은 예외 클래스들 (대표적으로 IOException, SQLException 등))
복구 가능성이 있는 예외이므로, 반드시 예외를 처리하는 코드를 함께 작성
예외를 처리하기 위해서는 catch 문으로 잡거나 throws를 통해 메소드 밖으로 던질 수 있다.(상위 메소드로 넘김)
만약 예외를 처리하지 않으면 컴파일조차 되지 않는다.
Transaction 기본 롤백 대상 X
→ 롤백 처리를 하려면 추가 처리가 필요
class EX {
public static void main(String[] args) {
throw new RuntimeException();
}
}
RuntimeException 클래스를 상속받는 예외 클래스들은 복구 가능성이 없는 예외들이므로,
컴파일러가 예외 처리를 강제하지 X
= "언체크 예외"
Error 와 마찬가지로, 에러를 처리하지 않아도 컴파일 에러가 발생 X
→ 즉, 런타임 예외는 예상치 못했던 상황에서 발생하는 것이 아니므로, 굳이 예외 처리를 강제하지 X
→ RuntimeException 의 예시 : NullPointerException, IllegalArgumentException 등...
Transaction 롤백 대상 O
→ @Transactional 과 rollbackFor 이 기본 옵션으로 들어가 있음
주의! 체크 예외 vs 언체크 예외