Почему это выброшенное исключение дублируется? - PullRequest
1 голос
/ 20 марта 2011

Это дополнительный вопрос этого вопроса , который не очень важен.

Я написал следующий плагин фронт-контроллера:

public function postDispatch(Zend_Controller_Request_Abstract $request)
{
    $response = $this->getResponse();
    $monitor = Zend_Registry::get('monitor');

    if ($response->isException())
    {
        $monitor->log($response);
    }
}

Где $ monitor - это экземпляр пользовательского класса ведения журнала БД (расширяющий Zend_Log).

В методе журнала Monitor я зацикливаюсь на массиве Zend_Exceptions, возвращаемых функцией $ response-> getException ().

Для целей тестирования я через исключение в действии:

throw new Zend_Exception('the big test', 555);

Большинство вещей работает как положено, Исключение записывается в базу данных.

Вопрос

Но это написано дважды. Почему?

1 Ответ

3 голосов
/ 20 марта 2011

Потому что диспетчерский цикл вызывается дважды. Сначала для текущего действия, а затем для по умолчанию: error: error :) Поместите журнал в dispatchLoopShutdown() method

...