gpt4 book ai didi

symfony - 如何处理 symfony 2 中特定 Controller 的异常

转载 作者:行者123 更新时间:2023-12-02 18:46:14 25 4
gpt4 key购买 nike

我有一个处理 API 请求的 Controller 。现在我需要单独处理该 Controller 的任何异常,即转换为 json/xml 格式、覆盖消息或添加任何详细信息。全局处理异常不适合我的情况。

今天我有一个 KernelEvent 订阅者,它处理 kernel.exception 并检测当前 Controller ( Gist ):

public function processApiException(GetResponseForExceptionEvent $event)
{
$controllerName = $this->container->get('controller_name_converter');
$resolver = new ControllerResolver($this->container, controllerName);
$controller = $resolver->getController($event->getRequest());

if ($contoller && $controller[0] instanceof JsonApiControllerInterface) {
$this->handleApiExceptionEvent($event);
}
}

所以,问题是:

  • 以这种方式处理特定 Controller 异常是一个好的解决方案吗?
  • 除了使用 ControllerResolver 之外,还有其他方法可以获取当前 Controller (从 GetResponseForExceptionEvent)吗?

最佳答案

我知道和使用的方式是

  1. 在Response中发送错误代码,双方都必须知道代码的含义。

  2. 在响应中返回如下 json:

    {'success':false,'errors':[{'code':'ERROR_CODE','message':'此处消息'}]}

关于symfony - 如何处理 symfony 2 中特定 Controller 的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39530547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com