Voglio usare un modo generico per gestire i codici di errore 5xx, diciamo in particolare il caso in cui il db è inattivo in tutta la mia applicazione primaverile. Voglio un json di errore piuttosto che una traccia dello stack.
Per i controller ho una @ControllerAdvice
classe per le diverse eccezioni e questo è anche il caso in cui il db si sta fermando nel mezzo della richiesta. Ma questo non è tutto. Mi capita anche di avere CorsFilter
un'estensione personalizzata OncePerRequestFilter
e lì quando chiamo doFilter
ricevo il CannotGetJdbcConnectionException
e non sarà gestito dal @ControllerAdvice
. Ho letto molte cose online che mi hanno solo reso più confuso.
Quindi ho molte domande:
- Devo implementare un filtro personalizzato? Ho trovato il
ExceptionTranslationFilter
ma questo gestisce soloAuthenticationException
oAccessDeniedException
. - Ho pensato di implementare il mio
HandlerExceptionResolver
, ma questo mi ha fatto dubitare, non ho alcuna eccezione personalizzata da gestire, deve esserci un modo più ovvio di questo. Ho anche provato ad aggiungere un try / catch e chiamare un'implementazione diHandlerExceptionResolver
(dovrebbe essere abbastanza buono, la mia eccezione non è niente di speciale) ma questo non restituisce nulla nella risposta, ottengo uno stato 200 e un corpo vuoto.
C'è un buon modo per affrontare questo problema? Grazie