Я следовал документации Symfony2.2 по настройке шаблонов ошибок и переопределил шаблон ошибки по умолчанию в app/Resources/TwigBundle/views/Exception/error.html.twig
, как описано для Twig.
В некоторых контроллерах я выдаю пользовательский 404, например, когда объект БД не существует. Я делаю это с:
throw $this->createNotFoundException('Thing not found');
Когда существует мой собственный шаблон, это исключение не перехватывается, поэтому моя страница с ошибкой никогда не отображается, и я получаю фатальную ошибку. Я ничего не менял в обработчиках исключений, поэтому не понимаю, почему переопределение шаблона нарушает функциональность рендеринга ошибок Symfony.
Похоже, что showAction
контроллера исключений Twig выполняется, но исключение по-прежнему выбрасывается из стека.
Что нужно сделать, чтобы исключение было перехвачено и обработано?
Дополнительная информация:
Записывается следующее. (изменено только имя клиента)
[2013-05-22 16:26:22] request.INFO: Matched route "show_thing" (parameters: "_controller": "Client\SiteBundle\Controller\ThingController::indexAction", "id": "thing", "_route": "show_thing") [] []
[2013-05-22 16:26:22] security.INFO: No expression found; abstaining from voting. [] []
[2013-05-22 16:26:22] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "thing not found" at /home/vhosts/client/symfony/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php line 149 [] []