【问题标题】:Exception handling in Symfony2Symfony2 中的异常处理
【发布时间】:2013-03-14 20:49:51
【问题描述】:

在这种情况下如何在 symfony2 中手动处理异常:

class Foo {

    // ..

    public function __toString()
    {
        try {
            $this->render();
        }
        catch (\Exception $e)
        {
            // log $e
            // handle $e - display 500 error page in prod mode
        }
    }
}

重定向?但是如何。

编辑

到目前为止,我的解决方案是调度异常事件,它有效。

$dispatcher->dispatch(KernelEvents::EXCEPTION, $event)

但我需要创建一个事件。有更好的解决方案吗?

【问题讨论】:

  • Foo 类是 Symfony 控制器还是您在自定义类中有自己的渲染方法?
  • Foo 既不是控制器也不是服务。它只是在控制器操作中使用的常规类。是的,它有自定义渲染方法

标签: php symfony exception-handling


【解决方案1】:

我们还可以根据 HTTP 状态(返回)代码自定义特定的 TWIG 错误模板。例如,创建一个 app/Resources/TwigBundle/views/Exception/error404.html.twig 模板来显示 404(找不到页面)错误的特殊页面。

或者,我们也可以自定义exceptionController

【讨论】:

    【解决方案2】:

    您还可以定义自己的异常控制器并执行所需的行为。

    检查How to customize Error PagesConfiguration: exception_controller

    UPD

    创建事件监听器是捕捉异常的好方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-26
      • 1970-01-01
      • 1970-01-01
      • 2021-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多