运行时在请求侦听器中捕获异常 - > Twig 错误模板



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

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

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

以下是我迄今为止尝试过的

  • kernel.exception事件侦听器
  • 抛出一个"正常"的Exception(可能是这样)。似乎从侦听器内部引发的异常也不会引发kernel.exception事件

有什么建议吗?

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

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

最新更新