У меня есть классы A и B. Оба помечены @RestControllerAdvice
. Также у обоих классов есть метод, помеченный @ExceptionHandler(SomeException.class)
(обратите внимание, что оба обработчика исключений относятся к одному и тому же типу исключений). Классы A и B не находятся в одной иерархии.
Причина, по которой я это сделал, заключается в том, что у меня нет элемента управления для класса A, как во внешней библиотеке, и мне нужно было переопределить поведение классаA's ExceptionHandler.
Во время отладки я вижу, что оба обработчика исключений регистрируются в Spring Exception Handler Cache, но распознаватель исключений всегда выбирает метод класса B, игнорируя класс A (который поставляется с внешней зависимостью). Это то, что мне было нужно, но:
- Я хочу понять, почему выбирается мой пользовательский, и хочу быть уверен, что однажды весна не выберет тот, который поставляется с библиотекой.
- Есть ли способ полностью отключить обработчик исключений библиотеки, чтобы он даже не был зарегистрирован в кэше обработчика исключений?