Php Symfony2中的异常处理
在以下情况下,如何在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
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既不是控制器也不是服务。它只是控制器动作中使用的常规类。是的,它有自定义的渲染方法