【问题标题】:RuntimeException catching in request listener -> Twig error template请求侦听器中捕获的 RuntimeException -> Twig 错误模板
【发布时间】:2013-02-02 01:00:07
【问题描述】:

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

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

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

这是我目前尝试过的方法

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

有什么建议吗?

【问题讨论】:

    标签: php symfony twig


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-07-03
      • 2021-08-07
      • 2021-11-22
      • 1970-01-01
      • 2016-09-16
      • 2014-11-23
      • 2022-07-01
      • 2011-06-03
      • 2012-05-03
      相关资源
      最近更新 更多