@galliard

Почему в symfony в ExceptionListenet попадает только изначальное исключение?

Стандартная ситуация: где-то бросается exception1, потом ловится и бросаетcя вместо него exception2, а exception1 уходит в previous. Потом и exception2 ловится и вместо него бросается exception3, а exception2 тоже уходит в previous.

Я объявляю ExceptionListenet и ожидаю получить в него самое последние брошенное исключение, в данном случае exception3, и через previous раскрутить всю цепочку. Но вместо этого я получаю только exception1. И все данные, которые хранились в exception2 и exception3 безвозвратно потеряны.

Почему так происходит? И есть ли возможность как-то так это перенастроить, чтобы получать в листенер последний брошенный эксепшн?
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
BoShurik
@BoShurik Куратор тега Symfony
Symfony developer
Security-компонент навешивает свой собственный ExceptionListener, в котором ищет среди всей иерархии исключений те, которые относятся к компоненту (в вашем случае CustomUserMessageAuthenticationException - подкласс AuthenticationException) и обрабатывает их по-свойму.

Можете попробовать поиграться с приоритетом своего листенера, но есть вероятность что сломаете логику работы компонента
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы