捕获请求侦听器的RuntimeException - >树枝错误模板

时间:2013-02-17 14:20:38

标签: php symfony twig

我有一个绑定到kernel.request事件的内核侦听器,在某些情况下可以抛出PHP \RuntimeException。然而在dev env Symfony捕获异常并向我显示'致命错误'的Twig错误页面,在prod env中我只是不断得到一个空页面。这是一个200 OK HTTP响应,但它没有内容。

我想要实现的是显示自定义错误页面 - 即“错误的应用程序配置”,这对于尝试访问该页面的最终用户实际上是有用的。这是一个致命的错误,但是 - 好吧 - 它最终会发生。

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

这是我到目前为止所尝试的内容

  • kernel.exception事件侦听器
  • 抛出'正常'\Exception(想到可能就​​是这种情况)。似乎从侦听器中抛出的异常也不会触发kernel.exception事件......

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

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

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