throw exceptions is not on and I've also tested the dispatchLoopStartup in
the plugins broker. It is not catching the exception.
Waigani wrote:
>
> The code
>
> throw new Zend_Exception('test');
>
> in the predispatch hook of a plugin returns
>
> Fatal error: Uncaught exception 'Zend_Exception' with message 'test' …
>
> I am registering my plugins via $frontController->registerPlugin() method.
>
> Is this not the expected behaviour?
>
>
>
> Jason Webster wrote:
>>
>> The Plugin Broker (Zend_Controller_Plugin_Broker) _should_ catch any
>> exceptions thrown by controller plugins. Well, not should, it does.
>> Perhaps this is an issue with how you're instantiating your plugins??
>>
>> Waigani wrote:
>>> Thanks for the run down. Is it possible to throw an error in a plugin
>>> though?
>>> So far the errorController has missed it.
>>>
>>>
>>>
>>> Jason Webster wrote:
>>>
>>>> Waigani wrote:
>>>>
>>>>> Is it possible? I want to throw an exception in the preDispatch of a
>>>>> plugin
>>>>> if you are not allowed to view the page. I then want to handle that
>>>>> exception via the errorController. I can wrap the $front->dispatch()
>>>>> in a
>>>>> try / catch and catch the exception in the bootstrap, but then how do
>>>>> I
>>>>> forward that onto the errorController, as the front controller has not
>>>>> been
>>>>> dispatched? I've read the manual and other posts and have not found an
>>>>> answer nor an alternative method.
>>>>>
>>>>>
>>>> I think you may be misunderstanding the dispatching process of the
>>>> front
>>>> controller. Here's a run down:
>>>>
>>>> 1. Request/Response/Router/Dispatcher initialization
>>>> 2. routeStartup()
>>>> * call plugins registered with this hook
>>>> 3. Routing
>>>> * Updates Request object based on matched information from
>>>> routing
>>>> 4. routeShutdown()
>>>> * call plugins registered with this hook
>>>> 5. dispatchLoopStartup()
>>>> * call plugins registered with this hook
>>>> 6. preDispatch()
>>>> * call plugins registered with this hook
>>>> 7. Dispatch action
>>>> 8. action helper preDispatch()
>>>> 9. action controller preDispatch()
>>>> 10. action method
>>>> * UNLESS a _forward() or redirect has occurred
>>>> 11. action controller postDispatch()
>>>> 12. action helper postDispatch()
>>>> 13. postDispatch()
>>>> * call plugins registered with this hook
>>>> /* repeat 6 - 13 as necessary */
>>>> 14. dispatchLoopShutdown()
>>>> * call plugins registered with this hook
>>>> 15. send response
>>>>
>>>> The preDispatch hooks of action helpers and action controllers ad re
>>>> steps 8 and 9, respectively. The ErrorHandler front controller plugin
>>>> is
>>>> registered basically right away.
>>>>
>>>> In short, if you throw an exception in the preDispatch of a
>>>> controller/action it _will_ be caught by the ErrorHandler plugin, and
>>>> thus forwarded to the error controller.
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>>
>
>
--
View this message in context:
http://www.nabble.com/handle-any-exception-with-errorController-tp20316623p20317954.html
Sent from the Zend Framework mailing list archive at Nabble.com.