Php Symfony2中的异常处理

Php Symfony2中的异常处理,php,symfony,exception-handling,Php,Symfony,Exception Handling,在以下情况下,如何在symfony2中手动处理异常: class Foo { // .. public function __toString() { try { $this->render(); } catch (\Exception $e) { // log $e // handle $e - display 500 err

在以下情况下,如何在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)

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

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

检查和

UPD


创建事件侦听器是捕获异常的一个很好的解决方案。

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


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

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