【问题标题】:Symfony2 Debugger Stops Exception Propagation And Displays Error PageSymfony2 调试器停止异常传播并显示错误页面
【发布时间】:2016-02-18 16:00:23
【问题描述】:

我有一个包含多个 Symfony 服务的设置,这些服务都会在任何错误时抛出异常。

我有控制器充当这些服务的包装器。

我的一个包装控制器(我的前端向其发送请求)中的操作可能如下所示:

/**
 * @Route("/someroute", name="some_route")
 */
public function myServiceWrapperFunctionAction(Request $request) {
    try {
        $this->get("myservice")->someFunctionThatThrowsException();
    } catch(Exception $e) {
        // This never happens when an exception is thrown from the service
        return new Response($e->getMessage());
    }
}

但是我似乎从来没有到达 catch 块,而是触发了调试器,就像 try-catch 甚至不存在一样。

Symfony 调试器是否拦截所有未在同一类中捕获的异常?或者为什么在这种情况下异常消息没有返回到我的前端?

感觉我在这里错过了一个非常愚蠢的细节。

【问题讨论】:

    标签: php symfony exception-handling


    【解决方案1】:

    如果你没有

    use Exception;
    

    在您的代码中,正确的 try..catch 应该如下所示:

    try {
        $this->get("myservice")->someFunctionThatThrowsException();
    } catch(\Exception $e) {
        // This never happens when an exception is thrown from the service
        return new Response($e->getMessage());
    }
    

    就像Exception 会要求自动加载器加载\Your\Controller\Namespace\Exception 而不是\Exception

    【讨论】:

    • 我在我的代码中的其他地方都做过这个,除了这里......我一定是中风了。
    猜你喜欢
    • 2015-03-20
    • 2014-12-29
    • 2013-11-13
    • 1970-01-01
    • 2012-07-20
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多