#exception #zend-framework2
#исключение #zend-framework2
Вопрос:
Как остановить отображение исключений в zend framework 2, и вместо этого при возникновении исключения я хочу перенаправить на страницу 404. На самом деле, когда пользователь запускает неправильный URL-адрес или какой-либо запрос выполняется неправильно, возникает исключение, поэтому мне нужно заблокировать это исключение и вместо этого перенаправить на любую другую хорошо оформленную страницу. Я не могу отследить точку исключения или, скорее, перехватить исключение или откуда генерируется исключение. Я использовал этот код, в котором вы можете обрабатывать исключения в любом случае, в котором вы хотите, после его перехвата, в качестве следующего примера, в котором вы перехватываете исключение глобально…:
В методе onBootstrap я прикрепил следующий код в Module.php в функции, выполняемой при возникновении события, ниже приведена функция, которая должна выполняться при возникновении ошибки (исключения):
public function onBootstrap(MvcEvent $e)
{
$application = $e->getApplication();
$em = $application->getEventManager();
//handle the dispatch error (exception)
$em->attach(ZendMvcMvcEvent::EVENT_DISPATCH_ERROR, array($this,
'handleError'));
//handle the view render error (exception)
$em->attach(ZendMvcMvcEvent::EVENT_RENDER_ERROR, array($this,
'handleError'));
}
and then defineed in module.php only the function to handle the error
public function handleError(MvcEvent $e)
{
//get the exception
$exception = $e->getParam('exception');
//...handle the exception... maybe log it and redirect to another page,
//or send an email that an exception occurred...
}
Я нашел этот код только из stackoverflow, но он не работает, я имею в виду, когда я передаю неправильные параметры в URL, он показывает » Произошла ошибка 404
Страница не найдена.
Запрошенный контроллер не смог отправить запрос.
Контроллер: Front Controller Front
Исключение недоступно »
Пожалуйста, мне нужна помощь в этом.
Ответ №1:
вы можете отключить исключения в zf2, связав ‘display_exceptions’ => TRUE с ‘display_exceptions’ => false, [module/Application/config/module.config.php ]
Комментарии:
1. Нет, я не хочу останавливать отображение исключения, а скорее отслеживать исключение и показывать его или перенаправлять на одно из моих определенных представлений.