Как перехватывать исключения в помощнике по действию?

#php #zend-framework #exception-handling #helper

#php #zend-framework #исключение #помощник

Вопрос:

Когда я создаю исключение (например, throw new Zend_Exception('You are not allowed',403); ) в Action Helper, ErrorHandler не перехватит его. Я получил Fatal error: Uncaught exception 'Zend_Exception' with message 'You are not allowed' in.. .

Я также настроил throw Exceptions = false во FrontController.

Как перехватывать исключения в контроллере действий?

Комментарии:

1. Установка Throw Exceptions в false означает, что Zend Framework сам по себе не будет генерировать исключения. Исключения, которые генерирует ваш код специально, не будут затронуты.

2. Вы создаете исключение, чтобы сигнализировать всему запросу, что это HTTP-статус 403 запрещен?

Ответ №1:

Плагин ErrorHandler не предназначен для перехвата ошибок в плагинах или помощниках: он предназначен для перехвата ошибок, возникающих в postDispatch() цикле событий, и, таким образом, больше подходит для перехвата ошибок в вашем MVC.

Это сделано специально. Вероятно, вам не следует создавать исключения из помощников контроллера и помощников действий и вместо этого придерживаться «ручной» обработки ошибок.

Комментарии:

1. Тогда лучше использовать redirector для изменения адреса, чем вызывать исключение?

2. Источник: framework.zend.com/manual/1.12/en /…