-4

在这种情况下如何在 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)

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

4

2 回答 2

2

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

检查如何自定义错误页面配置:exception_controller

UPD

创建事件侦听器是捕获异常的好方法。

于 2013-03-25T14:07:42.020 回答
0

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

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

于 2013-10-30T15:26:05.973 回答