I am wondering how would I simulate a 500 error in Symfony 2.
I have been reading this post where Raise suggests throwing an exception
A good way to do it can be:
use Symfony\Component\HttpKernel\Exception\HttpException;
throw new HttpException(\Symfony\Component\HttpFoundation\Response::HTTP_INTERNAL_SERVER_ERROR, 'Testing the 500 error');
You can do it like this.
//in your controller
$response = new Response();
$response->setStatusCode(500);
return $response;
Dont forget to add
use Symfony\Component\HttpFoundation\Response;
at the top of your file.
Edit : To force Symfony 500 error, your proposition is fine :
throw new \Exception('Something went wrong!');
Put it in a controller function.
You can do:
throw new Symfony\Component\HttpKernel\Exception\HttpException(500, "Some description");
The simplest way to do this is to:
return new Response('', 500);
Don't forget to include Symfony\Component\HttpFoundation\Response
.
If you want to trigger a FatalErrorException
in Symfony2 to see if you app is handling it correctly, you can create an action like this in your controller:
public function fatalErrorExceptionAction()
{
$unknown->getVoid();
}
The division by zero will generate a Warning
while throwing the Exception
, well, it'll just throw it. :-)
You have to use Symfony\Component\HttpKernel\Exception\HttpException.
Another way should be doing something like 1/0;
, but I haven't tested it.