[JAVA]Checked vs Unchecked Exception

신지훈·2025년 4월 30일
0

JAVA/Spring

목록 보기
5/6

이 내용은 자바 웹 프로그래밍 next step 책을 공부하다 정리하면 좋은 내용인 것 같아 따로 작성하게 되었다.

이 내용은 어떤 exception은 try-catch문으로 꼭 처리를 해줘야 하고 어떤 exception은 메소드뒤에 throws exception으로 처리를 해줘도 되는 경우가 있었다. try-catch문으로 작성할 경우 가독성이 너무 떨어져 어떻게 하면 try-catch문을 사용하지 않을 수 있을까라는 생각으로 해당 내용을 찾아보게 되었다.

Checked vs Unchecked Exception

그림을 보면 모든 Exception은 Thrwoable를 상속받고 있고 Exception은 크게 RuntimeException을 상속하는 Unchecked Exception과 그 이외의 Checked Exception으로 나눌 수 있다.

Checked Exception

먼저 Checked Exception은 말 그대로 확인된 예외로 주로 프로그램이 시작하는 시점인 컴파일 단계에서 확인된다. 이는 우리가 9번째 리펙토링을 한 주된 이유인데 기존에 처리하고 있었던 SQLException은 Checked Exception의 한 종류로 이 계열의 예외가 발생하였을 때 몇가지 특징이 있다.

  1. 프로그램을 자동으로 안정적인 상태로 되돌리는 Roll Back 처리를 하지 않는다.
  2. 메소드를 호출하는 쪽에서 try-catch나 throws로 예외 처리를 강제한다.

Unchecked Exception

그럼 Unchecked Exception에 대해 간단히 알아보면 프로그래밍 소스코드를 작성하여 컴파일과정에서는 문제를 발견하지 못하고 정상적으로 컴파일이 진행되었으나, 프로그램을 실행중에 발생하는 오류사항들을 말한다.

Unchecked Exception은 RuntimeException 과는 반대로 다음과 같은 특징이 있다.

  1. Spring에서 Unchecked 예외는 자동으로 Roll Back 된다.
  2. 메소드를 호출하는 쪽에서 try-catch나 throws로 처리를 강요하고 있지 않다.

참고

그럼 어떻게 try-catch문을 줄일 수 있는지 자세한 내용은 자바 웹 프로그래밍 next step (블로그)[https://velog.io/write?id=e213ea84-d33b-4946-a4b2-b592a0023588]에서 확인해보길 바란다.

profile
주주주주니어 개발자

0개의 댓글