A wrong behaviour was fixed, when there was no module route and no route
matched the given request. Previously, the router returned an unmodified
request object, so the front controller just displayed the default controller
and action. Since Zend Framework 1.10, the router will correctly as noted
in the router interface, throw an exception if no route matches. The error
plugin will then catch that exception and forward to the error controller.
You can then test for that specific error with the constant
Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ROUTE:
/**
* Before 1.10
*/
public function errorAction()
{
$errors = $this->_getParam('error_handler');
switch ($errors->type) {
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
// ...
/**
* With 1.10
*/
public function errorAction()
{
$errors = $this->_getParam('error_handler');
switch ($errors->type) {
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ROUTE:
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
// ...




