-
GlobalExceptionAdvice 기능 추가 1
- 실습 프로젝트에 포함된 GlobalExceptionAdvice 클래스의 handleBusinessLogicException() 메서드에서 클라이언트에게 [그림 h-5]와 같이 ErrorResponse를 전송할 수 있도록 추가 구현하세요.
- ⭐ MemberService의 findMember() 메서드에서 특정 예외를 던지도록 구현해 두었으니 MemberService는 별도로 건드릴 부분이 없습니다.
@ExceptionHandler(BusinessLogicException.class) public ResponseEntity handleBusinessLogicException(BusinessLogicException e) { final ErrorResponse response = ErrorResponse.of(e.getExceptionCode()); return new ResponseEntity<>(response,HttpStatus.valueOf(e.getExceptionCode().getStatus())); }
GlobalExceptionAdvice 기능 추가 2
- HttpRequestMethodNotSupportedException을 처리하기 위한 handleHttpRequestMethodNotSupportedException() 메서드를 구현하세요.
- MemberController의 postMember() 핸들러 메서드를 POST가 아닌 PATCH로 변경한 후 요청 전송 시, 아래와 같은 에러 응답 및 HTTP Status를 받을 수 있어야 합니다.
@ExceptionHandler(HttpRequestMethodNotSupportedException.class) public ResponseEntity handleHttpRequestMethodNotSupportedException(HttpRequestMethodNotSupportedException e){ final ErrorResponse response=ErrorResponse.of(HttpStatus.METHOD_NOT_ALLOWED); return new ResponseEntity(response, HttpStatus.valueOf(response.getStatus())); }
GlobalExceptionAdvice 기능 추가 3
- NullpointerException 등과 같이 개발자가 구현 상의 실수로 발생하는 Exception을 처리하기 위한 handleException() 메서드를 구현하세요.
- 구현 후, MemberController의 deleteMember() 핸들러 메서드를 DELETE로 요청 전송 시, 아래와 같은 에러 응답 및 HTTP Status를 받을 수 있어야 합니다.
- ⭐ MemberService의 deleteMember() 메서드에는 의도적으로 NullpointerException이 발생하도록 구현이 되어 있는 상태입니다.
@ExceptionHandler public ResponseEntity handleException(Exception e){ final ErrorResponse response = ErrorResponse.of(HttpStatus.INTERNAL_SERVER_ERROR); return new ResponseEntity<>(response, HttpStatus.valueOf(response.getStatus())); }
public static ErrorResponse of(HttpStatus status){ return new ErrorResponse(status.value(), status.name(), null, null); } //HttpStatus 객체를 이용하여 ErrorResponse 객체를 생성하는 정적 메서드 //HttpStatus 객체에서 HTTP요청 및 응답에서 사용되는 HTTP상태 코드 값을 정의하고 있다 //status.value() : HTTP상태 코드의 정수 값 반환 //status.name() : 상태 코드의 문자열이 반환 //ErrorResponse 생성자에 전달하여 새로운 ErrorResponse객체를 만들어 반환하는 것 //ErrorResponse 클래스는 api요청 처리 중 발생하는 예외나 오류 상황에서 클라이언트에게 전달하는 응답 객체를 담당
ErrorResponse 클래스 일부분..
이런식으로 수정을 해줘야함
'공부 > spring' 카테고리의 다른 글
개프 하기 전 개념학습 (0) 2023.06.05 프록시 서버 (0) 2023.06.02 Mapper (0) 2023.05.03 DTO (0) 2023.05.01 Controller (0) 2023.04.28