【问题标题】:skip symfony2 kernel exception跳过 symfony2 内核异常
【发布时间】:2018-07-05 22:19:12
【问题描述】:

我正在使用 symfony2.8 和 我们有一个 KernelExceptionService,如果有 500,400 或任何异常,我想跳过它,然后恢复服务并继续工作。

原因 我们正在点击多个 url 来获取数据,如果发生任何异常,整个处理就会停止。

public function onKernelException(GetResponseForExceptionEvent $event) {
    $exception = $event->getException();
    $response = new JsonResponse;
    $request = $event->getRequest();

    if ($exception instanceof InvalidConfigurationException) {
        //500 case
        $responseData = return [
            'code' => Response::HTTP_NOT_FOUND,
            'message' => $exception->getMessage()
        ];
    } else {
       // same as aobve if with difference code
    }        

    //Prepare the response
    $response->setData($responseData);
    $response->setStatusCode($statusCode);
    $event->setResponse($response);
}

【问题讨论】:

    标签: php symfony-2.1 symfony-2.8


    【解决方案1】:

    只需用 try catch 块包装特定代码?

    这样您的异常侦听器将永远不会触发,您可以在代码的特定部分以不同的方式处理异常。

    【讨论】:

    • 它尝试过,但仍然符合逻辑并且没有成功。我尝试了两种方法。添加在控制器中并添加到服务中
    • 我们能看到导致异常的运行代码吗?
    • 抱歉,现在解决了。我终于有用了。没有它,它仍然会触及该代码。感谢帮助。我正在使用一项使用一些语言和经度调用 google api 的服务,但是当我们传递一些垃圾数据时。整个过程停止
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 2012-10-10
    • 2014-04-26
    相关资源
    最近更新 更多