체크 예외 & 언체크 예외

김하밍·2023년 6월 16일
0

Spring

목록 보기
6/13

Exception in Java
예외의 종류

예외 (Exception)
java.lang.Exception 클래스와 하위 클래스들은 Error와 달리 애플리케이션 코드에서 예외가 발생하였을 경우에 사용된다.
그리고 Exception은 다시 체크 예외와 언체크 예외로 구분된다.

체크 예외를 catch해도 쿼리를 수정하여 재배포하지 않는 이상 복구되지 않는 경우가 많기 때문에, 실제 개발에서는 대부분 언체크 예외를 사용한다.

언체크 예외 (Uncheck Exception)
RuntimeException 클래스를 상속받는 예외 클래스들은 복구 가능성이 없는 예외들이므로 컴파이럴라 예외처리를 강제하지 않는다.

컴파일러가 잡아주지 않으므로 개발자가 실수로 예외를 누락할 수 있다는 단점이 있다.

언체크 예외 example

  • 중복된 ID로 가입을 시도하는 경우
    Constraint 에러가 발생하였다면 우리가 해야할 것은 올바른 에러 코드를 내려주는 것일분, 체크 예외로 처리할 필요가 없다.
    체크 예외를 가져간다면 불필요하게 throw해주어야 하는 코드가 많아진다.

해결하기 위해서는
Spring은 언체크 예외로 정의하고, 무분별한 throw를 하지 않아도 되도록 도와준다.

(Error와 마찬가지인 개념)
즉, 런타임 예외는 예상치 못했던 상황에서 발생하는 것이 아니므로 굳이 예외 처리를 강제하지 않는다.

언체크 예외는 RuntimeException을 extends(Java 상속)한다.
--> RuntimeException의 기능이 확장된다.
--> RuntimeException을 써도 되지만 구체적인 에러 정보를 담기가 한계가 있다.
--> 그래서 extends 하여 기능을 확장해서 사용한다.

profile
나만의 언어로 기록하며 성장하기 !

0개의 댓글