Метод getAsString
Метод getAsString принадлежит классу FlattenException
из компонента Symfony ErrorHandler. Класс FlattenException
представляет собой «сплющенную» версию исключения - сериализуемый
объект, который удобно передавать между слоями приложения и выводить
в ответе. Метод getAsString возвращает полное текстовое
представление исключения: сообщение, класс исключения и трассировку
стека в виде одной строки. Параметров метод не принимает.
Синтаксис
public function getAsString(): string
Пример
Давайте создадим объект FlattenException из обычного
исключения с помощью метода createFromThrowable и выведем
результат метода getAsString:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentErrorHandlerExceptionFlattenException;
class ErrorController extends AbstractController
{
public function show(): Response
{
$exception = new \RuntimeException('Something went wrong');
$flatten = FlattenException::createFromThrowable($exception);
return new Response($flatten->getAsString());
}
}
?>
Результат выполнения кода:
Something went wrong
RuntimeException:
...stack trace...
Пример
Давайте перехватим исключение в контроллере и вернём его
строковое представление через метод getAsString:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentErrorHandlerExceptionFlattenException;
class ArticleController extends AbstractController
{
public function index(): Response
{
try {
throw new \InvalidArgumentException('Invalid article id');
} catch (\Throwable $e) {
$flatten = FlattenException::createFromThrowable($e);
return new Response(
$flatten->getAsString(),
$flatten->getStatusCode()
);
}
}
}
?>
Результат выполнения кода:
Invalid article id
InvalidArgumentException:
...stack trace...
Смотрите также
-
класс
FlattenException,
который представляет «сплющенную» версию исключения -
метод
createFromThrowable,
который создаёт объект FlattenException из исключения -
метод
getStatusCode,
который возвращает HTTP-код исключения -
метод
getTrace,
который возвращает трассировку стека исключения