【发布时间】:2017-02-23 18:15:57
【问题描述】:
我发现了很多关于在 Symfony2 中捕获异常的问题,但似乎没有一个答案适用于我的情况。
我试图在我的控制器中调用$this->forward(),它会抛出一个我无法捕捉到的\InvalidArgumentException。我只是得到了500错误页面。
500 Internal Server Error - InvalidArgumentException
我试图捕捉这个异常:
try {
$response = $this->forward('FooBundle:Foo:bar', ['foo' => 'bar']);
} catch (\InvalidArgumentException $ex) {
error_log($ex->getMessage());
} catch (\Exception $ex) {
// this doesn't work either
}
这个异常是 Symfony 在第 65 行的Symfony\Component\HttpKernel\Controller\ControllerResolver 中抛出的:
throw new \InvalidArgumentException(sprintf('Controller "%s" for URI "%s" is not callable.', get_class($controller), $request->getPathInfo()));
这似乎是一个 SPL 异常。它出现就好像我正确地抓住了它。那么缺少什么?
注意:这是在我的开发环境中,如果与它有关的话。
有趣的是,将 this 放在我的控制器中确实有效:
try {
throw new \InvalidArgumentException('Fake Exception');
} catch (\InvalidArgumentException $ex) {
// do nothing
}
【问题讨论】:
-
糟糕,我什至没有注意到 500 错误是对
forward()的调用的实际响应。也许应该删除 Q...
标签: php symfony exception-handling