如何在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)
但我需要创建一个活动。有没有更好的解决方案?
答案 0 :(得分:2)
您还可以定义自己的异常控制器并执行所需的行为。
检查How to customize Error Pages和Configuration: exception_controller
<强> UPD 强>
创建事件监听器是捕获异常的好方法。
答案 1 :(得分:0)
我们还可以根据HTTP状态(返回)代码自定义特定的TWIG错误模板。例如,创建app / Resources / TwigBundle / views / Exception / error404.html.twig模板以显示404(找不到页面)错误的特殊页面。
或者,我们也可以自定义exceptionController。