@ExceptionHandler
: Spring MVC 예외 처리
: ErrorResponse 클래스를 이용해 Reqeust Body에 대한 유효성 검증 실패시 필요한 에러 정보만 담아 클라이언트에게 응답으로 전송
(기존의 에러 메시지보다 자세한 내용의 에러 메시지)
[단점]
1) 각각의 Controller 클래스에서 ExceptionHandler 애너테이션을 사용하여 Request Body에 대한 유효성 검증 실패에 대한 에러 처리를 해야하기 때문에 각 Controller 클래스마다 코드 중복이 발생함
2) Controller에서 처리해야 되는 예외가 유효성 검증 실패에 대한 예외만 있는 것이 아니기 때문에 하나의 Controller 클래스 내에서 @ExceptionHandler를 추가한 에러 처리 핸들러 메서드가 늘어남
>> 다양한 유형의 예외가 발생할 경우 부적절함
@RestControllerAdvice
: 특정 클래스에 애너테이션 추가시 여러개의 Controller 클래스에서 @ExceptionHandler, @InitBinder 또는 @ModelAtrribut가 추가된 메서드를 공유해서 사용이 가능
>> 즉, 예외 처리를 공통화 할 수 있음
: @RestControllerAdvice 를 사용할 경우 JSon 형식의 데이터를 Response Body로 전송하기 위해 ResponseEntiry로 매핑할 필요가 없음
: @ResponseStatus 애너테이션으로 HTTP Status를 대신 표현할 수 있음
'공부 자료 > Spring' 카테고리의 다른 글
[Spring MVC] About JDBC(Java Database Connectivity) (0) | 2022.10.27 |
---|---|
[Spring MVC] 체크 예외(Checked Exception), 언체크 예외(Unchecked Exception) (0) | 2022.10.26 |
[Spring MVC] DTO 클래스와 Entity 클래스 역할 분리 필요 이유 (0) | 2022.10.24 |
[Spring Boot] Spring Boot 프로젝트 생성하기 (feat.스타터 사이트) (0) | 2022.10.22 |
[Spring MVC] DTO(Data Transfer Object)/클래스 생성 (0) | 2022.10.21 |