Я хочу использовать общий способ для управления кодами ошибок 5xx, скажем конкретно, в случае, когда db падает по всему моему приложению spring. Я хочу довольно ошибочную ошибку json вместо трассировки стека.
Для контроллеров у меня есть класс @ControllerAdvice
для разных исключений, и это также ловут случай, когда db останавливается в середине запроса. Но это еще не все. У меня также есть пользовательский CorsFilter
расширяющий OncePerRequestFilter
, и там, когда я вызываю doFilter
, я получаю CannotGetJdbcConnectionException
, и он не будет управляться @ControllerAdvice
. Я читал несколько вещей в Интернете, которые только меня смутили.
Итак, у меня много вопросов:
- Нужно ли мне реализовать собственный фильтр? Я нашел
ExceptionTranslationFilter
, но это только обрабатываетAuthenticationException
илиAccessDeniedException
. - Я подумал о том, чтобы реализовать свой собственный
HandlerExceptionResolver
, но это заставило меня сомневаться, у меня нет никакого настраиваемого исключения для управления, должен быть более очевидный путь, чем это. Я также попытался добавить try/catch и вызвать реализациюHandlerExceptionResolver
(должно быть достаточно хорошо, мое исключение ничего особенного), но это ничего не возвращает в ответ, я получаю статус 200 и пустые тела.
Есть ли хороший способ справиться с этим? Благодаря