如何在Symfony 2中模拟500错误

Jon*_*Jon 22 symfony

我想知道如何在Symfony 2中模拟500错误.

我一直在读这篇文章,其中Raise建议抛出异常

抛出新的sfException('测试500错误');

在Symfony 1.4中.

我一直把这个代码放在我的

\store\vendor\symfony\symfony\src\Symfony\Bundle\TwigBundle\Controller\ExceptionController.php
Run Code Online (Sandbox Code Playgroud)

但我得到了致命的错误

在第49行的/home/notroot/www/store/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Controller/ExceptionController.php中找不到类'Symfony\Bundle\TwigBundle\Controller\sfException'

第49行引用我添加的异常代码.

我的问题是,如果在Symfony 2中强制出现500错误,抛出异常仍然可行,如果是这样,我在哪里放置此异常?

如果这不再可行,我怎么能测试错误500?

Pie*_*ouw 34

你可以这样做.

//in your controller
$response = new Response();
$response->setStatusCode(500);
return $response;
Run Code Online (Sandbox Code Playgroud)

别忘了添加

use Symfony\Component\HttpFoundation\Response;
Run Code Online (Sandbox Code Playgroud)

在您的文件的顶部.

编辑:为了强制Symfony 500错误,你的命题很好:

throw new \Exception('Something went wrong!');
Run Code Online (Sandbox Code Playgroud)

把它放在控制器功能中.


Xoc*_*zin 29

你可以做:

throw new Symfony\Component\HttpKernel\Exception\HttpException(500, "Some description");
Run Code Online (Sandbox Code Playgroud)