article thumbnail image
Published 2022. 8. 8. 19:28

예외 계층

 

스프링이 제공하는 예외 추상화를 이해하기 위해서는 먼저 자바 기본 예외에 대한 이해가 필요하다. 예외는 자바 언어의 기본 문법에 들어가기 때문에 대부분 아는 내용일 것이다. 예외의 기본 내용을 간단히 복습하고, 실무에 필요한 체크 예외와 언체크 예외의 차이와 활용 방안에 대해서도 알아보자

 

 

예외 계층 그림

● Object : 예외도 객체이다. 모든 객체의 최상위 부모는 Object 이므로 예외의 최상위 부모도 Object 이다.

 Throwable : 최상위 예외이다. 하위에 Exception 과 Error 가 있다.


 Error : 메모리 부족이나 심각한 시스템 오류와 같이 애플리케이션에서 복구 불가능한 시스템 예외이다.  애플리케이션 개발자는 이 예외를 잡으려고 해서는 안된다.
    ▶상위 예외를 catch 로 잡으면 그 하위 예외까지 함께 잡는다. 따라서 애플리케이션 로직에서 Throwable 예외도 잡으면 안되는데, 앞서 이야기한 Error 예외도 함께 잡을 수 있기 때문에다.  애플리케이션 로직은 이런 이유로 Exception 부터 필요한 예외로 생각하고 잡으면 된다.
    참고로 Error 도 언체크 예외이다.


 Exception : 체크 예외
    애플리케이션 로직에서 사용할 수 있는 실질적인 최상위 예외이다.
    Exception 과 그 하위 예외는 모두 컴파일러가 체크하는 체크 예외이다. 단 RuntimeException 은 예외로 한다.
 RuntimeException : 언체크 예외, 런타임 예외
    컴파일러가 체크 하지 않는 언체크 예외이다.
    RuntimeException 과 그 자식 예외는 모두 언체크 예외이다.
    RuntimeException 의 이름을 따라서 RuntimeException 과 그 하위 언체크 예외를 런타임
    예외라고 많이 부른다. 여기서도 앞으로는 런타임 예외로 종종 부르겠다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

출처 : 김영환 스프링 DB 강의

복사했습니다!