Symfony2调试器停止异常传播并显示错误页面


Symfony2 Debugger Stops Exception Propagation And Displays Error Page

我有一个包含多个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调试器是否拦截了未在同一类中捕获的所有异常?或者为什么在这种情况下没有将异常消息返回到我的前端?

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

如果你没有

use Exception;

在您的代码中,然后适当地尝试。捕获应如下所示:

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