본문 바로가기
Spring

자바 예외 이해

by ppirae 2022. 7. 28.

  • Error : 메모리 부족이나 심각한 시스템 오류와 같이 애플리케이션에서 복구 불가능한 시스템 예외이다.
    애플리케이션 개발자는 이 예외를 잡으려고 해서는 안된다.
    • 상위 예외를 catch 로 잡으면 그 하위 예외까지 함께 잡는다. 애플리케이션 로직에서는 Throwable 예외도 잡으면 안되는데, 앞서 이야기한 Error 예외도 함께 잡을 수 있기 때문에다. 애플리케이션 로직은 이런 이유로 Exception 부터 필요한 예외로 생각하고 잡으면 된다.
  • Exception : 체크 예외
    • 애플리케이션 로직에서 사용할 수 있는 실질적인 최상위 예외이다.
    • Exception 과 그 하위 예외는 모두 컴파일러가 체크하는 체크 예외이다. 단 RuntimeException 은 예외로 한다
  • RuntimeException : 언체크 예외, 런타임 예외
    • 컴파일러가 체크 하지 않는 언체크 예외이다.
    • RuntimeException 과 그 자식 예외는 모두 언체크 예외이다.
    • RuntimeException 의 이름을 따라서 RuntimeException 과 그 하위 언체크 예외를 런타임 예외라고 많이 부른다.
  • 체크 예외, 언체크 예외
    • 체크 예외는 복구 가능성이 있는 예외로 반드시 예외를 처리하는 코드를 함께 작성해야 한다.
      예외를 처리하지 않으면 컴파일 에러가 발생한다.
    • 언체크 예외는 복구 가능성이 없는 예외로 예외처리를 강제하지 않는다.

언제 체크 예외를 사용하고 언제 언체크(런타임) 예외를 사용하면 좋을까 ?

 

기본원칙

  • 기본적으로 언체크(런타임) 예외를 사용하자.
  • 체크 예외는 비즈니스 로직상 의도적으로 던지는 예외에만 사용하자.

인프런 김영한님의 스프링 DB 1편을 듣고 작성한 글입니다.

https://inf.run/xA44

 

스프링 DB 1편 - 데이터 접근 핵심 원리 - 인프런 | 강의

백엔드 개발에 필요한 DB 데이터 접근 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 DB 접근 기술의 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - 강의

www.inflearn.com

 

'Spring' 카테고리의 다른 글

Spring Boot 초기 설정  (0) 2022.08.18
Spring Security 간단 적용  (0) 2022.08.01
트랜잭션의 개념과 이해  (0) 2022.07.24
Spring Boot 와 JWT  (0) 2022.07.20
파일 업로드  (0) 2022.06.26

댓글