РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
518 of 1361 menu

Класс FlattenException

Класс FlattenException представляет исключение в виде плоской структуры данных: массива или строки. Он используется в Symfony для передачи информации об ошибке через границы процессов, при сериализации в JSON и для логирования. Класс содержит методы для получения кода статуса, сообщения, трассировки и заголовков исходного исключения.

Синтаксис

use Symfony\Component\ErrorHandler\Exception\FlattenException; $flatten = FlattenException::createFromThrowable($exception);

Пример

Давайте создадим объект FlattenException из обычного исключения и получим его сообщение и код статуса:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\ErrorHandler\Exception\FlattenException; class ErrorController extends AbstractController { public function show(): Response { $exception = new \RuntimeException('Something went wrong', 500); $flatten = FlattenException::createFromThrowable($exception); echo $flatten->getMessage(); echo $flatten->getStatusCode(); } } ?>

Результат выполнения кода:

"Something went wrong" 500

Пример

Давайте получим трассировку стека в виде строки:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\ErrorHandler\Exception\FlattenException; class ErrorController extends AbstractController { public function trace(): Response { $exception = new \InvalidArgumentException('Invalid value'); $flatten = FlattenException::createFromThrowable($exception); echo $flatten->getTraceAsString(); } } ?>

Результат выполнения кода:

"#0 /var/www/src/Controller/ErrorController.php(15): ..."

Пример

Давайте получим все данные исключения в виде массива с помощью метода toArray:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\ErrorHandler\Exception\FlattenException; class ErrorController extends AbstractController { public function toArray(): Response { $exception = new \RuntimeException('Something went wrong', 500); $flatten = FlattenException::createFromThrowable($exception); $res = $flatten->toArray(); echo json_encode($res); } } ?>

Результат выполнения кода:

{"message":"Something went wrong","code":0,"status":500,"trace":[...]}

Смотрите также

  • метод createFromThrowable,
    который создаёт FlattenException из исключения
  • метод getStatusCode,
    который возвращает HTTP-код ошибки
  • метод getMessage,
    который возвращает сообщение исключения
  • метод getTrace,
    который возвращает трассировку стека
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить