mirror of
https://github.com/nagisa77/OpenIsle.git
synced 2026-02-09 08:30:55 +08:00
40 lines
1.3 KiB
Java
40 lines
1.3 KiB
Java
package com.openisle.controller;
|
|
|
|
import com.openisle.exception.FieldException;
|
|
import com.openisle.exception.NotFoundException;
|
|
import com.openisle.exception.RateLimitException;
|
|
import java.util.Map;
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
|
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
|
|
|
@RestControllerAdvice
|
|
public class GlobalExceptionHandler {
|
|
|
|
@ExceptionHandler(FieldException.class)
|
|
public ResponseEntity<?> handleFieldException(FieldException ex) {
|
|
return ResponseEntity.badRequest().body(
|
|
Map.of("error", ex.getMessage(), "field", ex.getField())
|
|
);
|
|
}
|
|
|
|
@ExceptionHandler(NotFoundException.class)
|
|
public ResponseEntity<?> handleNotFoundException(NotFoundException ex) {
|
|
return ResponseEntity.status(404).body(Map.of("error", ex.getMessage()));
|
|
}
|
|
|
|
@ExceptionHandler(RateLimitException.class)
|
|
public ResponseEntity<?> handleRateLimitException(RateLimitException ex) {
|
|
return ResponseEntity.status(429).body(Map.of("error", ex.getMessage()));
|
|
}
|
|
|
|
@ExceptionHandler(Exception.class)
|
|
public ResponseEntity<?> handleException(Exception ex) {
|
|
String message = ex.getMessage();
|
|
if (message == null) {
|
|
message = ex.getClass().getSimpleName();
|
|
}
|
|
return ResponseEntity.badRequest().body(Map.of("error", message));
|
|
}
|
|
}
|