Как имитировать 500 ошибок в Symfony 2

Мне интересно, как бы я смоделировал ошибку 500 в Symfony 2.

Я читал этот пост, где Raise предлагает выбросить исключение

throw new sfException ( "Тестирование ошибки 500" );

в Symfony 1.4.

Я размещал этот код в своем

\store\vendor\symfony\symfony\src\Symfony\Bundle\TwigBundle\Controller\ExceptionController.php

но я получаю фатальную ошибку

Класс 'Symfony\Bundle\TwigBundle\Controller\sfException' не найден в /home/notroot/www/store/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Controller/ExceptionController.php в строке 49`

Строка 49 относится к коду исключения, который я добавил.

Мой вопрос заключается в том, что если исключение исключений по-прежнему является жизнеспособным при форсировании ошибки 500 в Symfony 2, и если да, то где я помещаю это исключение?

Если это более нежизнеспособно, как я могу проверить ошибку 500?

Ответы

Ответ 1

Вы можете сделать это следующим образом.

//in your controller
$response = new Response();
$response->setStatusCode(500);
return $response;

Не забудьте добавить

use Symfony\Component\HttpFoundation\Response;

в верхней части файла.

Изменить: Чтобы заставить Symfony 500 выполнить ошибку, ваше предложение в порядке:

throw new \Exception('Something went wrong!');

Поместите его в функцию контроллера.

Ответ 2

Вы можете сделать:

throw new Symfony\Component\HttpKernel\Exception\HttpException(500, "Some description");

Ответ 3

Самый простой способ сделать это:

return new Response('', 500);

Не забудьте включить Symfony\Component\HttpFoundation\Response.

Ответ 5

Если вы хотите вызвать FatalErrorException в Symfony2, чтобы увидеть, правильно ли работает приложение, вы можете создать такое действие в своем контроллере:

public function fatalErrorExceptionAction()
{
    $unknown->getVoid();
}

Деление на ноль сгенерирует a Warning, бросая Exception, ну, он просто выбросит его.: -)

Ответ 6

Хороший способ сделать это можно:

use Symfony\Component\HttpKernel\Exception\HttpException;

throw new HttpException(\Symfony\Component\HttpFoundation\Response::HTTP_INTERNAL_SERVER_ERROR, 'Testing the 500 error');