src/EventSubscriber/ExceptionSubscriber.php line 13
<?phpnamespace App\EventSubscriber;use Symfony\Component\HttpKernel\KernelEvents;use Symfony\Component\HttpFoundation\JsonResponse;use Symfony\Component\HttpKernel\Event\ExceptionEvent;use Symfony\Component\HttpKernel\Exception\HttpException;use Symfony\Component\EventDispatcher\EventSubscriberInterface;class ExceptionSubscriber implements EventSubscriberInterface{public function onKernelException(ExceptionEvent $event): void{//après avoir récupéré l’objet exception , nous vérifions si cet objet est une HttpException//Si c’est le cas, nous récupérons le code et le message, puis nous changeons la réponse de//l’événement pour la transformer en JsonResponse$exception = $event->getThrowable();if ($exception instanceof HttpException) {$data = ['status' => $exception->getStatusCode(),'message' => $exception->getMessage()];$event->setResponse(new JsonResponse($data));//Au contraire, si ce n’est pas une HttpException, alors, du point de vue du client on va//considérer que c’est une erreur “générique”. Le code associé à ce type d’erreur est 500.//Donc on renseigne ce code ainsi que le message d’erreur, et on retourne à nouveau une JsonResponse} else {$data = ['status' => 500, // Le status n'existe pas car ce n'est pas une exception HTTP, donc on met 500 par défaut.'message' => $exception->getMessage()];$event->setResponse(new JsonResponse($data));}}public static function getSubscribedEvents(): array{return [KernelEvents::EXCEPTION => 'onKernelException',];}}