Symfony2中的异常处理

时间:2013-03-25 11:21:59

标签: php symfony exception-handling

如何在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)

但我需要创建一个活动。有没有更好的解决方案?

2 个答案:

答案 0 :(得分:2)

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

检查How to customize Error PagesConfiguration: exception_controller

<强> UPD

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

答案 1 :(得分:0)

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

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