Class GestorExcepciones
Centraliza la captura de errores lanzados desde cualquier capa del sistema (controladores, servicios, etc.)
y los transforma en una respuesta JSON estandarizada mediante RespuestaErrorDTO.
Utiliza la anotación @RestControllerAdvice para interceptar las excepciones de forma transversal.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.http.ResponseEntity<RespuestaErrorDTO> manejarConcurrencia(org.springframework.orm.ObjectOptimisticLockingFailureException ex, jakarta.servlet.http.HttpServletRequest request) Maneja las excepciones de concurrencia producidas cuando dos usuarios intentan modificar el mismo registro simultáneamente.org.springframework.http.ResponseEntity<RespuestaErrorDTO> manejarExcepcionesDeNegocio(RuntimeException ex, jakarta.servlet.http.HttpServletRequest request) Maneja las excepciones genéricas de ejecución que representan violaciones de reglas de negocio.org.springframework.http.ResponseEntity<RespuestaErrorDTO> manejarExcepcionesGlobales(Exception ex, jakarta.servlet.http.HttpServletRequest request) Maneja las excepciones globales de tipoExceptionque no han sido capturadas por otros manejadores.org.springframework.http.ResponseEntity<RespuestaErrorDTO> manejarRecursoNoEncontrado(jakarta.persistence.EntityNotFoundException ex, jakarta.servlet.http.HttpServletRequest request) Maneja las excepciones producidas cuando no se encuentra un recurso solicitado en la base de datos.org.springframework.http.ResponseEntity<RespuestaErrorDTO> manejarValidaciones(org.springframework.web.bind.MethodArgumentNotValidException ex, jakarta.servlet.http.HttpServletRequest request) Maneja las excepciones producidas cuando falla la validación de los argumentos de entrada (anotaciones@Valid).
-
Constructor Details
-
GestorExcepciones
public GestorExcepciones()
-
-
Method Details
-
manejarValidaciones
@ExceptionHandler(org.springframework.web.bind.MethodArgumentNotValidException.class) public org.springframework.http.ResponseEntity<RespuestaErrorDTO> manejarValidaciones(org.springframework.web.bind.MethodArgumentNotValidException ex, jakarta.servlet.http.HttpServletRequest request) Maneja las excepciones producidas cuando falla la validación de los argumentos de entrada (anotaciones@Valid).Extrae todos los mensajes de error asociados a los campos del DTO que no han superado las restricciones y genera una respuesta
HttpStatus.BAD_REQUESTdetallada.- Parameters:
ex- La excepción de validación capturada.request- La solicitud HTTP en la que se produjo el error, para extraer la URI.- Returns:
- Una respuesta estructurada con los detalles de los campos que fallaron la validación.
-
manejarExcepcionesDeNegocio
@ExceptionHandler(java.lang.RuntimeException.class) public org.springframework.http.ResponseEntity<RespuestaErrorDTO> manejarExcepcionesDeNegocio(RuntimeException ex, jakarta.servlet.http.HttpServletRequest request) Maneja las excepciones genéricas de ejecución que representan violaciones de reglas de negocio.Captura cualquier
RuntimeExceptionno manejada específicamente, registrando el error en el log y retornando una respuestaHttpStatus.BAD_REQUESTcon el mensaje descriptivo de la excepción.- Parameters:
ex- La excepción de negocio o error de ejecución capturado.request- La solicitud HTTP donde ocurrió la incidencia.- Returns:
- Una respuesta de error estandarizada con el mensaje de la excepción.
-
manejarExcepcionesGlobales
@ExceptionHandler(java.lang.Exception.class) public org.springframework.http.ResponseEntity<RespuestaErrorDTO> manejarExcepcionesGlobales(Exception ex, jakarta.servlet.http.HttpServletRequest request) Maneja las excepciones globales de tipoExceptionque no han sido capturadas por otros manejadores.Este es el último nivel de captura de errores, encargado de interceptar fallos críticos e inesperados en el sistema. Registra la traza completa del error en los logs para su posterior análisis técnico y retorna una respuesta
HttpStatus.INTERNAL_SERVER_ERRORestandarizada.- Parameters:
ex- La excepción raíz capturada.request- La solicitud HTTP donde se produjo el fallo crítico.- Returns:
- Una respuesta de error genérica con código 500 y recomendaciones de contacto con soporte.
-
manejarRecursoNoEncontrado
@ExceptionHandler(jakarta.persistence.EntityNotFoundException.class) public org.springframework.http.ResponseEntity<RespuestaErrorDTO> manejarRecursoNoEncontrado(jakarta.persistence.EntityNotFoundException ex, jakarta.servlet.http.HttpServletRequest request) Maneja las excepciones producidas cuando no se encuentra un recurso solicitado en la base de datos.Captura las excepciones de tipo
EntityNotFoundException, registrando una advertencia en los logs y retornando una respuestaHttpStatus.NOT_FOUND(404). Esto ocurre típicamente al intentar acceder, actualizar o eliminar un registro mediante un identificador inexistente.- Parameters:
ex- La excepción de entidad no encontrada.request- La solicitud HTTP donde se intentó acceder al recurso inexistente.- Returns:
- Una respuesta estructurada indicando que el recurso no está disponible.
-
manejarConcurrencia
@ExceptionHandler(org.springframework.orm.ObjectOptimisticLockingFailureException.class) public org.springframework.http.ResponseEntity<RespuestaErrorDTO> manejarConcurrencia(org.springframework.orm.ObjectOptimisticLockingFailureException ex, jakarta.servlet.http.HttpServletRequest request) Maneja las excepciones de concurrencia producidas cuando dos usuarios intentan modificar el mismo registro simultáneamente.Captura las excepciones de tipo
ObjectOptimisticLockingFailureExceptionlanzadas por el mecanismo de control de concurrencia optimista de JPA (anotación@Version). Retorna una respuestaHttpStatus.CONFLICT(409) informando al cliente que debe recargar los datos antes de reintentar la operación, evitando así la corrupción de datos por "actualizaciones perdidas".- Parameters:
ex- La excepción de fallo de bloqueo optimista lanzada por Hibernate/JPA.request- La solicitud HTTP en la que se produjo la colisión de datos.- Returns:
- Una respuesta estructurada indicando el conflicto de concurrencia (409 Conflict).
-