inblog logo
|
Gyeongwon's blog
    Springboot

    [스프링부트 #17] Spring 예외 처리 흐름

    도경원's avatar
    도경원
    Aug 25, 2025
    [스프링부트 #17] Spring 예외 처리 흐름
    Contents
    1. 예외 전파 기본 흐름2. Spring MVC에서의 특수 상황3. 스프링이 제공하는 해결책4. 결론5. 예시코드

    1. 예외 전파 기본 흐름

    자바에서 try-catch로 예외를 잡지 않으면 호출한 부모 메서드로 예외가 계속 전파된다. 아무도 이 예외를 잡아주지 않으면 결국 JVM까지 도달 → 프로그램 종료된다 (오류 피범벅)

    2. Spring MVC에서의 특수 상황

    Spring에서는 건드릴 수 있는 가장 앞단인 Controller 계층에서 예외를 처리해야 할 것 같다. 왜냐하면DispatcherServlet은 프레임워크 내부 코드라 직접 수정 불가하기 때문이다. 그렇다고 매 컨트롤러마다 try-catch를 두는 건 너무 귀찮다…

    3. 스프링이 제공하는 해결책

    • 전역 예외 처리용 어노테이션 제공한다.
      • @ControllerAdvice : 전역 예외 처리 클래스 지정
      • @ExceptionHandler : 특정 예외를 잡아 처리하는 메서드 지정
    • 이 두 가지로 모든 Controller의 예외를 한 곳에서 처리 가능하다.

    4. 결론

    • 예외는 결국 제일 앞단에서 처리해야 한다.
    • Spring MVC에서는 @ControllerAdvice + @ExceptionHandler 조합을 쓰면, DispatcherServlet을 건드리지 않고도 전역 예외 처리 구현 가능하다.
    • 잡지 않으면 예외는 JVM까지 올라가서 프로그램이 종료된다.

    5. 예시코드

    notion image
    Share article
    Contents
    1. 예외 전파 기본 흐름2. Spring MVC에서의 특수 상황3. 스프링이 제공하는 해결책4. 결론5. 예시코드

    Gyeongwon's blog

    RSS·Powered by Inblog