Symfony 3例外无错误500

时间:2016-07-14 07:56:11

标签: php symfony exception

symfony 3中是否可以在没有内部服务器错误的情况下生成异常?

我想对此异常执行某些操作(添加到数据库)但不要停止执行应用程序。

2 个答案:

答案 0 :(得分:0)

我假设您要做的不仅仅是catch异常,而是处理(在您的情况下:log) uncatched 异常。

这是一种常见的情况,因此解释为in the cookbook。基本上,您创建一个事件侦听器类,您将其注册为“kernel.event_listener”事件的服务。

答案 1 :(得分:0)

我也在努力解决这个问题,因为我正在生成自定义构建的异常,但无论我做什么,Symfony都会返回500状态的http状态。我以受控方式处理错误,只需要通知用户,这是一个状态200响应,因为它是对用户的消息。

无论如何,我发现这没有用:

$event->setResponse(new Response(json_encode($returnArray), 200));

但是,如果我添加了一个可用的标头,Symfony会在以后查找此标头并尊重它。没有标题,如果你使用/ Exception而不是/ HttpException,Symfony只会分配一个500

$event->setResponse(new Response(json_encode($returnArray), 200, array('X-Status-Code' => 200)));

我仍然对这个异常事情不熟悉,所以如果我做的事情是错误的,请告诉我,但这个标题解决了我的问题。