2013-02-17 34 views
0

我有一个内核侦听器绑定到kernel.request事件,在某些情况下可能会抛出PHP \RuntimeException。而在开发环境中,Symfony捕获异常并向我显示“致命错误”的Twig错误页面,在prod env中我只是不断获得空白页面。这是一个200 OK HTTP响应,但它没有内容。RuntimeException捕获请求侦听器 - > Twig错误模板

我想要实现的是显示一个自定义的错误页面,即'错误的应用程序配置',它实际上对试图访问该页面的最终用户有任何用处。这是一个致命的错误,但 - 最终 - 它可能最终发生。

我试图在我的异常监听器中捕获它,它在kernel.exception事件上得到执行,但似乎没有捕获到'致命错误'异常。

这里是我到目前为止

  • kernel.exception事件侦听器
  • 试图抛出一个“正常” \Exception(想或许是这种情况)。似乎从监听器中抛出的异常不会触发kernel.exception事件......

有什么建议吗?

回答

0

好的,我似乎找到了答案。

问题在于服务定义的顺序。当您将一个服务标记为将其某个方法绑定到一个kernel.exception事件时,它必须 - 当然 - 在您的服务的配置中声明,然后在任何其他侦听器中抛出异常。或者其他任何地方,事实上。