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