Symfony2で例外をキャッチすることに関する多くの質問があり、私の状況に該当しないようです。Symfony2コントローラの InvalidArgumentExceptionをキャッチできません
私のコントローラに$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
}
この例外は、ライン65上のSymfony\Component\HttpKernel\Controller\ControllerResolver
にsymfonyによってスローされます。
throw new \InvalidArgumentException(sprintf('Controller "%s" for URI "%s" is not callable.', get_class($controller), $request->getPathInfo()));
これは、SPLの例外のように見えます。そしてそれはが私が正しくそれを捕まえていたかのようにと表示されます。だから何が欠けている?
注:これは、それが何かと関係がある場合、これは私の開発環境です。
興味深いことに、私のコントローラにこのを置くことに動作します:
try {
throw new \InvalidArgumentException('Fake Exception');
} catch (\InvalidArgumentException $ex) {
// do nothing
}
私の悪いことに、私は500エラーが 'forward()'の呼び出しからの実際の応答であることに気付かなかった。多分Qは削除されるべきです... –