Неопределенный метод getException при обработке исключения в Symfony 5 - PullRequest
1 голос
/ 13 января 2020

Я создал класс исключений следующим образом:

<?php

declare(strict_types=1);

namespace App\Exception;

use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpKernel\Event\ExceptionEvent;
use Symfony\Component\HttpKernel\Exception\HttpException;
use function strpos;

final class HTTPExceptionListener
{
    public function onKernelException(ExceptionEvent $event): void
    {
        $exception = $event->getException();
        if (! ($exception instanceof HttpException) || strpos($event->getRequest()->getRequestUri(), '/api/') === false) {
            return;
        }

        $response = new JsonResponse(['error' => $exception->getMessage()]);
        $response->setStatusCode($exception->getStatusCode());
        $event->setResponse($response);
    }
}

Я добавил следующее в мой services.yaml файл:

 App\Exception\HTTPExceptionListener:
        tags:
            - { name: kernel.event_listener, event: kernel.exception }

Но я получаю ошибку:

Attempted to call an undefined method named "getException" of class "Symfony\Component\HttpKernel\Event\ExceptionEvent".

1 Ответ

2 голосов
/ 13 января 2020

В Symfony 4.4 метод getException устарел и был удален в Symfony 5.

Используйте взамен getThrowable. Пожалуйста, прочитайте документацию .

...