인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

koreakkrea12님의 프로필 이미지
koreakkrea12

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

@ControllerAdvice

ControllerAdvice를 쓸 때 메시지 출력

작성

·

326

0

@ResponseStatus 어노테이션을 단 커스텀 예외를 만들어서 사용하려고 할 때,

ControllerAdvice에 등록해서 사용하면 예외를 만들 때 구현했던 내용이 적용되지 않습니다.

예를 들어 커스텀 예외에서 ResponseStatus를 HttpStatus.NOT_FOUND로 했더라도 ControllerAdvice에서 return new ResponseEntity<>(e.getMessage(), HttpStatus.BAD_REQUEST)를 반환하게 하면 덮어씌워지는 것 같은데,

기존에 만들어둔 예외를 사용하고 싶다면 강의에서처럼 ErrorResult같은 객체를 만들어서 사용해야 하는 건가요?

그리고 @ResponseStatus의 reason인자에 적은 오류 이유를 꺼내서 사용하려면 어떻게 하면 되나요?

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. koreakkrea12님

new ResponseEntity가 우선권을 가지게 됩니다.

추가로 해당 예외에서 @ResponseStatus 애노테이션에 대한 정보를 찾고 싶으면

스프랑 자바 애노테이션 조회로 검색하시면 원하는 답을 찾으실 수 있을거에요.

감사합니다.

koreakkrea12님의 프로필 이미지
koreakkrea12

작성한 질문수

질문하기