UserService
if (!passwordEncoder.matches(deleteUserRequestDto.getPassword(), user.getPassword())) {
throw new UnauthorizedPasswordException();
}
비밀번호가 일치하지 않을 때 비밀번호 불일치 메세지를 던지기 위해서 예외처리를 했다.
UnauthorizedPasswordException
public class UnauthorizedPasswordException extends GlobalException {
public UnauthorizedPasswordException() {
super(UNAUTHORIZED_PASSWORD);
}
}
GlobalExceptionConst
@AllArgsConstructor
@Getter
public enum GlobalExceptionConst {
// user_Exception ( 상태코드 )
UNAUTHORIZED_PASSWORD(HttpStatus.UNAUTHORIZED, " 비밀번호가 일치하지 않습니다."),
//order_Exception (상태코드 400)
MINIMUM_ORDER_PRICE(HttpStatus.BAD_REQUEST, "주문 최소금액이 맞지 않습니다."),
//order_Exception (상태코드 403),
STORE_CLOSED(HttpStatus.FORBIDDEN, "가게 오픈 전입니다."),
UNAUTHORIZED_USER(HttpStatus.FORBIDDEN, "사용자 권한이 없습니다."),
//order_Exception (상태코드 404)
NOT_FOUND_ORDER(HttpStatus.NOT_FOUND, " 주문이 존재하지 않습니다."),
NOT_FOUND_USER(HttpStatus.NOT_FOUND, "회원이 존재하지 않습니다."),
// menu_Exception (상태코드 400)
NOT_FOUND_MENU(HttpStatus.BAD_REQUEST, " 해당 메뉴가 존재하지 않습니다."),
enum 으로 에러 메세지를 상수화 시켜놨다.
이처럼 여기에 팀원들끼리 소통해서 에러 메세지를 설정하고, HttpStatus 옆에는 알맞는 원하는 에러코드를 설정한다.
GlobalException
@Getter
public class GlobalException extends RuntimeException {
private final HttpStatus httpStatus;
// 상수 -> 상태 코드랑 메시지가 담겨있다.
public GlobalException(GlobalExceptionConst globalExceptionConst) {
super(globalExceptionConst.name() + globalExceptionConst.getMessage());
this.httpStatus = globalExceptionConst.getHttpStatus();
}
}
GlobalExceptionHandler
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(GlobalException.class)
public ResponseEntity<ErrorResult> handlerGlobalException(GlobalException e) {
return new ResponseEntity<>(new ErrorResult(e.getMessage()), e.getHttpStatus());
}
}
ErrorResult
@Getter
@AllArgsConstructor
public class ErrorResult {
private String message;
}
'컴퓨터 프로그래밍 > Spring' 카테고리의 다른 글
[Spring] S3 기능 구현 (1) | 2024.09.28 |
---|---|
[Spring] Entity 연관관계 설정 코드 (0) | 2024.09.27 |
[Spring] ApiResponse 예시 코드 분석 (0) | 2024.09.21 |
[Spring] AuthUser 예시 코드 분석 (0) | 2024.09.21 |
[Spring] AuthFilter 예시 코드 분석 (1) | 2024.09.21 |