CheckException vs UnCheckException

Bong2·2022년 3월 10일
0

JAVA

목록 보기
11/16

자바의 예외

  • 체크 예외
  • 에러
  • 언체크 예외

에러란?

에러는 시스템에 비정상적인 상황이 발생했을 경우에 발생한다.
ex) 메모리 부족 or 스택 오버 플로우와 같이 복구할 수 없는것들 -> 개발자가 예측하기 쉽지않고 처리할 수 있는 방법도 없다.

예외란?

프로그램 실행 중에 개발자의 실수로 예기치 않은 상황이 발생했을 때..
ex) 배열의 범위를 벗어난 ArrayIndexOutOfBoundsException, 값이 null 인 nullPointerException
프로그램에서 심각한 오류여서 복구 할 수없는 수준이 아니다!!.

예외에는 2가지로 나눠진다.
1. 체크 예외 : RuntimeException의 하위 클래스가 아닌 Exception클래스의 하위 클래스들
2. 언체크 예외 : RuntimeException의 하위 클래스들

CheckException

RuntimeException의 하위 클래스가 아닌 Exception클래스의 하위 클래스들
특징 : 반드시 에러 처리를 해야된다..!!(try/ catch or throw)

UnCheckException

RuntimeException의 하위 클래스들을 의미!
에러처리를 강제로 하지 않는다..
실행중에 발생할 수 있는 예외

컴파일러가 에러처리를 확인하지 않는 RuntimeException 클래스들은 unchecked 예외라고 부르고 예외처리를 확인하는 Exception 클래스들은 checked 예외라고 부릅니다.


스프링의 트랜잭션 기본적인 동작은 RuntimeException은 Roll-back을 하지만 UncheckException은 Roll-back을 하지 않는다. --> 하지만 스프링에서는 rollback옵션을 설정할 수 있다. 위의 표는 그래서 스프링과 자바를 동일시 한다면 맞는 말이지만 트랜잭션처리부분은 틀린 말이다

profile
자바 백엔드 개발자로 성장하자

0개의 댓글

관련 채용 정보