티스토리 뷰
@ExceptionHandler
- 특정 예외가 발생했을 때 해당 예외를 처리하는 메서드를 정의하는데 사용
- @ControllerAdvice와 @RestControllerAdvice 클래스 내에 정의
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(ResourceNotFoundException.class)
public ResponseEntity<String> handleResourceNotFoundException(ResourceNotFoundException ex) {
return new ResponseEntity<>(ex.getMessage(), HttpStatus.NOT_FOUND);
}
@ExceptionHandler(Exception.class)
public ResponseEntity<String> handleGenericException(Exception ex) {
return new ResponseEntity<>(ex.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
@ResponseStatus
- 특정 예외가 발생했을 때 HTTP 상태 코드를 설정하는데 사용
- 예외 클래스에 @ResponseStatus 어노테이션을 적용해 자동으로 지정된 상태 코드와 이유를 반환
@ResponseStatus(HttpStatus.NOT_FOUND)
public class ResourceNotFoundException extends RuntimeException {
public ResourceNotFoundException(String message) {
super(message);
}
}
비교 테이블
@ExceptionHandler | @ResponseStatus | |
역할 | 예외 처리 로직을 커스터마이징 여러 예외 상황을 세밀히 제어 가능 |
예외 클래스에 선언하여 예외 발생 시 자동으로 특정 HTTP 상태 코드를 반환하는데 사용 |
우선순위 | @ResponseStatus 보다 우선 | - |
둘다 사용할 경우 주의사항
- RuntimeException extends 하고 @ReponseStatus 를 추가한 클래스를 정의
- @ExceptionHandler로 RuntimeException 예외 처리 로직 및 statusCode를 구현했을 경우
@ExceptionHandler에서 정의한 error코드가 우선 반환됨. 따라서 @ResponseStatus를 붙일 필요가 없음.
참고 사이트
https://www.baeldung.com/spring-response-status
이상 정리 끝.
'프레임워크 > Spring & Spring boot' 카테고리의 다른 글
@NonNull, @Nonnull, @NotNull, @NotEmpty, @NotBlank 비교 (0) | 2024.06.17 |
---|---|
[학습테스트로 배우는 Spring] 코드리뷰 (feat. 예외처리와 @RestControllerAdvice) (0) | 2024.06.16 |
[학습테스트로 배우는 Spring] 코드리뷰 (feat. Entity와 Dto 의존관계, 자료구조) (0) | 2024.06.14 |
[SpringJDBC] JDBC를 이용한 데이터베이스 ACID 개념 살펴보기 (0) | 2024.04.28 |
Spring Security 와 JWT를 이용한 로그인 구현기(feat. Flutter) (0) | 2024.03.17 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- NLU
- 커밋메시지
- 객체정렬
- 온라인강의
- BufferedReader
- @exceptionahandler
- 나만의챗봇
- 재기동
- jeus
- script
- dxdy
- BFS
- Spring
- 자바
- 코드트리
- 전자정부프레임워크
- 유데미
- JWT
- thymeleaf
- 챗봇
- RASA
- final 사용예시
- 백준
- BufferedWriter
- Comparator
- springboot
- 알고리즘
- Comparable
- 글또
- Java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
글 보관함