BackEnd
[Spring] Exception 처리 @ExceptionHandler 예제
mingg123
2021. 7. 4. 16:08
Web Application의 입장에서는 에러가 났을때 대처할 수 있는 방법
1. 에러 페이지
2. 400, 500대 Error
3. Client가 200 외에 처리를 ㅏ지 못 할 때는 200을 내려주고 별도의 에러 메세지를 전달
예외 처리 종류
@ControllerAdvice
특정 패키지/ 컨트롤러 예외 처리, Global 예외 처리
@ExceptionHandler
특정 Controller 의 예외 처리
@ExceptionHandler(value = MethodArgumentTypeMismatchException.class)
public ResponseEntity methodArgumentTypeMismatchException(MethodArgumentTypeMismatchException e, HttpServletRequest httpServletRequest) {
List <Error> errorList = new ArrayList<>();
Error error = new Error();
error.setField("fieldName");
error.setMessage(e.getMessage());
error.setInvalidValue("invalidvalue");
errorList.add(error);
ErrorResponse errorResponse = new ErrorResponse();
errorResponse.setErrorList(errorList);
errorResponse.setMessage(httpServletRequest.getRequestURI());
errorResponse.setStatusCode(HttpStatus.BAD_REQUEST.toString());
errorResponse.setResultCode("FAIL");
System.out.println("Not Null!");
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(errorResponse);
}
아래와 같이 이쁘게 BODY에 들어오게 된다.