스프링 부트에서 제공하는 ExceptionResolver
- ExceptionHandlerExceptionResolver - @ ExceptionHandler를 처리함, API 예외 처리는 대부분 이 기능으로 해결한다.
- ResponseStatusExceptionResolver - HTTP 상태 코드를 지정해준다
- DefaultHandlerExceptionResolver - 스프링 내부 기본 예외를 처리한다
ResponseStatusExceptionResolver
1. @ResponseStatus 사용하여 예외 처리
package com.example.exception.Exception;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;
@ResponseStatus(code = HttpStatus.BAD_REQUEST, reason = "error.bad")
public class BadRequestException extends RuntimeException{
}
위 코드에서는 @ResponseStatus에서 오류코드를 400(BAD_REQUEST)로 변경하고 오류 메시지도 포함하였다.
<컨트롤러>
@GetMapping("/api/response-status-ex1")
public String responseStatusEx1(){
throw new BadRequestException();
}
실행 결과
2. ResponseStatusException을 이용한 예외처리
@GetMapping("/api/response-status-ex2")
public String responseStatusEx2(){
throw new ResponseStatusException(HttpStatus.NOT_FOUND,"error.bad",new IllegalArgumentException());
}
DefaultHandlerExceptionResolver
DefaultHandlerExceptionResolver는 스프링 내부에서 발생하는 예외를 처리해 준다.
@GetMapping("/api/default-handler-ex")
public String defaultException(@RequestParam("data") Integer data) {
return "ok";
}
data를 정수가 아닌 문자열로 보내면 400(Bad Request)에러를 보낸다.
@ExceptionHandler 사용하는 예외처리 ==> 다음 게시물에서 포스팅 예정
'BackEnd > 스프링 MVC' 카테고리의 다른 글
포맷터 - Formatter , @NumberFormat, @DateTimeFormat (0) | 2025.01.10 |
---|---|
@ExceptionHandler (0) | 2025.01.09 |
HandlerExceptionResolver (0) | 2025.01.07 |
스프링 오류페이지 (0) | 2025.01.07 |
스프링 인터셉터 - 인증 체크 (0) | 2025.01.05 |