Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Lo que aprendimos

En esta clase aprendí a manejar errores creando una clase con @RestControllerAdvice para centralizar las excepciones.

Usé @ExceptionHandler para devolver 404 cuando no se encuentra un recurso y 400 cuando hay errores de validación.

También simplifiqué el JSON de error para que la API sea más clara y profesional.

1 respuesta

¡Hola Estudiante, espero que estés bien!

Parece que has captado muy bien los conceptos presentados en la clase sobre el manejo de excepciones en Spring Boot. Al crear una clase con @RestControllerAdvice, logras centralizar el manejo de errores, lo que es una excelente práctica para mantener tu código limpio y organizado.

El uso de @ExceptionHandler para manejar errores específicos como el 404 y el 400 es fundamental para proporcionar respuestas claras y precisas a los usuarios de tu API. Además, simplificar el JSON de error no solo hace que tu API sea más profesional, sino que también mejora la experiencia del usuario al facilitar la comprensión de los errores.

Un ejemplo práctico de cómo podrías implementar esto es crear una clase como GlobalExceptionHandler y definir métodos con @ExceptionHandler para cada tipo de excepción que desees manejar. Por ejemplo:

@RestControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(ResourceNotFoundException.class)
    public ResponseEntity<ErrorResponse> handleResourceNotFound(ResourceNotFoundException ex) {
        ErrorResponse errorResponse = new ErrorResponse("Recurso no encontrado", 404);
        return new ResponseEntity<>(errorResponse, HttpStatus.NOT_FOUND);
    }

    @ExceptionHandler(MethodArgumentNotValidException.class)
    public ResponseEntity<ErrorResponse> handleValidationExceptions(MethodArgumentNotValidException ex) {
        ErrorResponse errorResponse = new ErrorResponse("Error de validación", 400);
        return new ResponseEntity<>(errorResponse, HttpStatus.BAD_REQUEST);
    }
}

En este ejemplo, ErrorResponse sería una clase que tú defines para estructurar el mensaje de error que deseas enviar. Espero que esto te ayude a consolidar lo que has aprendido. ¡Bons estudios!