...
- Si queremos devolver un status code HTTP concreto y un mensaje, sin importar el formato del JSON devuelto (modelo de respuesta) => Usar ResponseStatusException (punto 1).
- Si queremos modificar el modelo de respuesta de forma global => Crear una clase que extienda DefaultErrorAttributes (punto 2).
- Si queremos manejar una excepción de forma local en nuestro controlador REST y cambiar la respuesta para esa única excepción => Crear un método con ExceptionHandler (punto 3).
- Si queremos manejar todas nuestras excepciones de forma global => Crear una clase con RestControllerAdvice e incluir en ella nuestros handlers (punto 4).
- Si queremos modificar el manejo de las excepciones internas que realiza Spring => Crear una clase RestControllerAdvice que extienda ResponseEntityExceptionHandler (punto 5).
- Si usamos Bean Validation y queremos modificar la respuesta o el modelo devuelto por Spring => Crear un ExceptionHandler para javax.validation.ValidationException (punto 6).
| Advertencia |
|---|
Aunque pueden usarse varios mecanismos a la vez, se deben evitar las situaciones en que una misma excepción se maneje de varias formas. Esto puede ocasionar comportamientos anómalos. |
| Info |
|---|
Próximamente estará disponible la integración con el RFC Problem, por lo que no se recomienda elaborar muchos modelos de respuesta propios. Estará disponible un modelo de respuesta común para las aplicaciones FundeWebJS y se indicará cómo manejar las excepciones de forma más ágil. |
...