CheckedException vs UncheckedException

서은경·2022년 7월 23일
0

Java

목록 보기
16/19

스프링 DI 실습을 하다가

public class DuplicateMemberException extends throwable {


public class DuplicateMemberException extends RuntimeException {

어떤 예외로 처리하냐에 따라 메소드의 throws 절에서 선언유무가 달랐다 확실한 차이를 알고 정확하게 짚고 넘어가기 위해 자바의 예외에 대해 포스팅 !

자바의 예외는 크게 세가지로 분류된다

Error

  • 시스템에 비정상적인 상황이 발생했을 경우에 발생(메모리 부족이나 스택 오버플로우 같은 복구 불가한 경우)

Checked Exception

  • JVM에 의해 발생되거나 JAVA throws문에 의해 발생될 수 있음
  • 반드시 try catch를 통한 예외 처리를 해야함
  • 컴파일 단계에서 확인 가능함
  • 예외발생 시 rollback이 되지 않고 트랜잭션이 commit까지 완료됨
  • Exception의 상속받는 하위 클래스 중 RuntimeException을 제외한 모든 예외 (ex. IOException, SQLException)

Unchecked Exception

  • JVM의 정상적인 작동 중 발생할 수 있는 예외의 슈퍼클래스
  • 메서드 또는 생성자 경계 외부로 전파될 수 있는 경우 메서드 또는 생성자의 throws 절에서 선언될 필요 없음
  • 명시적인 처리를 강제하지 않음
  • 실행 단계에서 확인 가능함
  • 예외발생 시 rollback 됨
  • RuntimeException 하위의 예외 (ex. NullPointerException, IllegalArgumentException, IndexOutOfBoundException, SystemException)

0개의 댓글

관련 채용 정보