Class GlobalExceptionHandler

java.lang.Object
com.nmontytskyi.monitoring.server.exception.GlobalExceptionHandler

@RestControllerAdvice public class GlobalExceptionHandler extends Object
Centralised exception handler for the REST API layer.

Translates application-specific exceptions into appropriate HTTP responses with structured JSON error bodies. Handles ServiceNotFoundException (404), ServiceAlreadyRegisteredException (409), ReportGenerationException (500), and Spring's validation constraint violations (400).

Author:
Nazar Montytskyi
  • Constructor Details

    • GlobalExceptionHandler

      public GlobalExceptionHandler()
  • Method Details

    • handleServiceNotFound

      @ExceptionHandler(ServiceNotFoundException.class) public org.springframework.http.ResponseEntity<Map<String,Object>> handleServiceNotFound(ServiceNotFoundException ex)
    • handleServiceAlreadyRegistered

      @ExceptionHandler(ServiceAlreadyRegisteredException.class) public org.springframework.http.ResponseEntity<Map<String,Object>> handleServiceAlreadyRegistered(ServiceAlreadyRegisteredException ex)
    • handleReportGeneration

      @ExceptionHandler(ReportGenerationException.class) public org.springframework.http.ResponseEntity<Map<String,Object>> handleReportGeneration(ReportGenerationException ex)
    • handleValidation

      @ExceptionHandler(org.springframework.web.bind.MethodArgumentNotValidException.class) public org.springframework.http.ResponseEntity<Map<String,Object>> handleValidation(org.springframework.web.bind.MethodArgumentNotValidException ex)
      Handles MethodArgumentNotValidException thrown by Spring MVC when @Valid @RequestBody validation fails on a POJO request body.
    • handleConstraintViolation

      @ExceptionHandler(jakarta.validation.ConstraintViolationException.class) public org.springframework.http.ResponseEntity<Map<String,Object>> handleConstraintViolation(jakarta.validation.ConstraintViolationException ex)
      Handles ConstraintViolationException thrown by MethodValidationInterceptor when @Validated class-level validation fails (e.g. for method parameters like List<@Valid T>).