스프링 프로젝트를 진행하면서 특정api에서 임의로 다른 HTTP status code를 보내줘야 할때가 있다.
이때는 어떻게 해야될까 싶어서 검색해보니 역시 방법이 있었다.
public class NameException extends RuntimeException{
public NameException(String message) {
super(message);
}
}
@RestController
@ControllerAdvice
public class CustomizedResponseEntityExceptionHandler extends ResponseEntityExceptionHandler {
@ExceptionHandler(NameException.class)
public final ResponseEntity<Object> handlerNameException(Exception e, WebRequest webRequest) {
return new ResponseEntity(new BaseResponse({Entity}), HttpStatus.CONFLICT);
}
}
if (userService.findNickName(nickName)) {
throw new NameException("Duplicated nickname");
}