package com.dken.userservice.exception; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestControllerAdvice; import java.util.Map; @RestControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(DefaultException.class) @ResponseStatus(HttpStatus.BAD_REQUEST) public Map handleDefaultException(DefaultException ex) { return Map.of("message", ex.getMessage()); } @ExceptionHandler(InvalidUserIdException.class) @ResponseStatus(HttpStatus.BAD_REQUEST) public Map handleInvalidId(InvalidUserIdException ex) { return Map.of("message", ex.getMessage()); } @ExceptionHandler(UserNotFoundException.class) @ResponseStatus(HttpStatus.NOT_FOUND) public Map handleNotFound(UserNotFoundException ex) { return Map.of("message", ex.getMessage()); } @ExceptionHandler(GiftCodeReservationException.class) @ResponseStatus(HttpStatus.BAD_REQUEST) public Map handleGiftCodeReservation(GiftCodeReservationException ex) { return Map.of("message", ex.getMessage()); } @ExceptionHandler(LocalProcessingException.class) @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) public Map handleLocalProcessing(LocalProcessingException ex) { return Map.of("message", ex.getMessage()); } @ExceptionHandler(RuntimeException.class) @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) public Map handleRuntimeException(RuntimeException ex) { return Map.of("message", "An unexpected error occurred: " + ex.getMessage()); } }