java / beginner
Snippet
Behandeln benutzerdefinierter Ausnahmen mit ExceptionHandler
In Spring Boot ermöglicht die Annotation @ExceptionHandler das Abfangen bestimmter Java-Ausnahmen, die in der Web-Schicht ausgelöst werden. Anstatt unübersichtliche Stack-Traces an Benutzer zurückzugeben, können Sie saubere Fehlerobjekte mit standardmäßigen HTTP-Statuscodes ausliefern.
snippet.java
java
1
2
3
4
5
6
7
8
9
@RestControllerAdvicepublic class GlobalErrorHandler {@ExceptionHandler(UserNotFoundException.class)@ResponseStatus(HttpStatus.NOT_FOUND)public Map<String, String> handleUserNotFound(UserNotFoundException ex) {return Map.of("error", ex.getMessage());}}
spring
Erklärung
1
@RestControllerAdvice
Registriert diese Klasse als globalen Interceptor für Ausnahmen aus allen REST-Controllern.
2
@ExceptionHandler(UserNotFoundException.class)
Weist Spring an, diese Methode aufzurufen, sobald eine UserNotFoundException ausgelöst wird.
3
@ResponseStatus(HttpStatus.NOT_FOUND)
Setzt den HTTP-Antwortstatuscode automatisch auf 404 (Not Found).
4
return Map.of("error", ex.getMessage());
Erstellt und liefert ein JSON-Objekt mit der Fehlerbeschreibung zurück.