package com.eactive.testmaster.common.exception; import java.time.LocalDateTime; import org.springframework.core.annotation.Order; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.context.request.WebRequest; import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler; @Order(1) @RestControllerAdvice(annotations = RestController.class) public class CustomGlobalExceptionHandler extends ResponseEntityExceptionHandler { @ExceptionHandler(NotFoundException.class) public ResponseEntity customHandleNotFound(Exception ex, WebRequest request) { ex.printStackTrace(); CustomErrorResponse errors = new CustomErrorResponse(); errors.setTimestamp(LocalDateTime.now()); errors.setError(ex.getMessage()); errors.setStatus(HttpStatus.NOT_FOUND.value()); return new ResponseEntity<>(errors, HttpStatus.NOT_FOUND); } @ExceptionHandler(RuntimeException.class) public ResponseEntity customHandleRuntime(Exception ex, WebRequest request) { ex.printStackTrace(); CustomErrorResponse errors = new CustomErrorResponse(); errors.setTimestamp(LocalDateTime.now()); errors.setError(ex.getMessage()); errors.setStatus(HttpStatus.BAD_REQUEST.value()); return new ResponseEntity<>(errors, HttpStatus.BAD_REQUEST); } @ExceptionHandler(UserNotLoginException.class) public ResponseEntity customHandleUserNotLogin(Exception ex, WebRequest request) { ex.printStackTrace(); CustomErrorResponse errors = new CustomErrorResponse(); errors.setTimestamp(LocalDateTime.now()); errors.setError(ex.getMessage()); errors.setStatus(HttpStatus.UNAUTHORIZED.value()); return new ResponseEntity<>(errors, HttpStatus.UNAUTHORIZED); } }