본문 바로가기

Programing/Framework

[Spring] mvc 예외처리

스프링의 mvc에서 예외처리는 실무에서 보면 @ControllerAdvice 을 이용해서 많이 한다.

아래와 같이 밑바닥 부터 예외 처리기를 구현해도 무방하다.

@RestControllerAdvice(basePackages = {"com.tistory.namocom.controller"})
public class NamoExceptionHandler {

하지만 편의를 위해 스프링은 미리 ResponseEntityExceptionHandler을 만들어놓았다.

public abstract class ResponseEntityExceptionHandler {

추상클래스이므로 상속을 받아 사용이 가능하다.

@RestControllerAdvice(basePackages = {"com.tistory.namocom.controller"})
public class NamoExceptionHandler extends ResponseEntityExceptionHandler {

스프링의 예외처리 리졸버

스프링은 예외처리 리졸버를 DefaultHandlerExceptionResolver 를 기본으로 사용한다.

아래와 같은 구조로 되어 있다.