我正在研究Symfony项目,我正在尝试为生产环境创建用户友好的错误页面。为此,我已覆盖twig.exception_controller
参数。该过程在Symfony Documentation中有所描述。在覆盖异常控制器时,我能够为没有路由的实例创建自定义错误页面,或者抛出未捕获的异常。我无法让这个与致命错误一起工作,这就是我的问题所在。
是否有可能在Symfony中捕获/处理致命错误?发生致命错误时,我没有尝试继续运行应用程序(as the answerer of this question suggests)。我只想显示一个错误页面,除了标准的一个有函数调用堆栈跟踪。
我尝试使用register_shutdown_function
设置关闭功能,但这并不会阻止显示默认错误页面(带有堆栈跟踪)。
谢谢!
答案 0 :(得分:0)
您可以将可能失败的进程放入try块
try {
// assert this fails because you have some buggy code here
$foos=$fooService->getFoosByDateTime();
}catch(\Exception $e){
//you can catch the exception
$exceptionMessage= $e->getMessage();
$this->redirect("your_custom_route_to_error_page",{"error":$exceptionMessage});
}
答案 1 :(得分:0)
您可以启用捕获致命错误并将其转换为异常,如调试组件中所示。
//如果我记得正确的Symfony Fullstack已经这样做了 http://symfony.com/doc/current/components/debug/introduction.html
然后你可以编写一个自己的异常处理程序,它以用户友好的方式捕获和处理异常。