Как имитировать 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
.
Ответ 4
Вы должны использовать Symfony\Component\HttpKernel\Exception\HttpException.
Другим способом должно быть что-то вроде 1/0;
, но я его не тестировал.
Ответ 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');