@ExceptionHandler & @ControllerAdvice este o componentă esențială în ecosistemul Spring Boot. Tratarea centralizată și uniformă a excepțiilor aruncate în aplicație, transformându-le în mesaje de eroare conforme RFC 7807.
Sintaxă și Utilizare Practică
Exemplu practic documentat pas cu pas:
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(ResourceNotFoundException.class)
public ProblemDetail handleNotFound(ResourceNotFoundException ex) {
ProblemDetail problem = ProblemDetail.forStatusAndDetail(HttpStatus.NOT_FOUND, ex.getMessage());
problem.setTitle("Resursa nu a fost gasita");
return problem;
}
}
Bune Practici în Producție
- Arhitectură și Tipizare: Folosiți DTO-uri, validare strictă și principii de decuplare (Inversion of Control).
- Performanță: Evitați interogările N+1, folosiți mecanisme de caching și rute asincrone unde este cazul.
- Securitate: Validați întotdeauna datele de intrare și aplicați filtre de autorizare pe toate endpoint-urile sensibile.