Коллектор исключений
Захватывает необработанные исключения с полными стеками вызовов и цепочками исключений (предыдущие исключения).

Собираемые данные
| Поле | Описание |
|---|---|
class | Имя класса исключения |
message | Сообщение исключения |
file | Файл, в котором было выброшено исключение |
line | Номер строки |
code | Код исключения |
trace | Массив стека вызовов |
traceAsString | Стек вызовов в виде форматированной строки |
Схема данных
Исключения сериализуются как массив (цепочка от внешнего к внутреннему):
[
{
"class": "RuntimeException",
"message": "Something went wrong",
"file": "/app/src/Service.php",
"line": 42,
"code": 0,
"trace": [...],
"traceAsString": "#0 /app/src/Controller.php(15): ..."
},
{
"class": "InvalidArgumentException",
"message": "Original cause",
"file": "/app/src/Validator.php",
"line": 88,
"code": 0,
"trace": [...],
"traceAsString": "..."
}
]Сводка (отображается в списке отладочных записей):
{
"exception": {
"class": "RuntimeException",
"message": "Something went wrong",
"file": "/app/src/Service.php",
"line": 42,
"code": 0
}
}Контракт
use AppDevPanel\Kernel\Collector\ExceptionCollector;
$collector->collect(throwable: $exception);INFO
ExceptionCollectorAppDevPanel\Kernel\Collector\ExceptionCollectorCollects Exception data during application lifecycle. реализует SummaryCollectorInterfaceAppDevPanel\Kernel\Collector\SummaryCollectorInterfaceSummary data collector responsibility is to collect summary data for a collector. Summary is used to display a list of previous requests and select one to display full info. Its data set is specific to the list and is reduced compared to full data collected in {@see CollectorInterface}. и зависит от TimelineCollectorAppDevPanel\Kernel\Collector\TimelineCollectorCollects Timeline data during application lifecycle..
Как это работает
Адаптеры фреймворков подключаются к конвейеру обработки ошибок для захвата необработанных исключений. Коллектор обходит цепочку исключений через getPrevious() и сериализует каждое исключение в цепочке.
Панель отладки
- Заголовок исключения — имя класса, сообщение и место выброса
- Цепочка исключений — предыдущие исключения отображаются в сворачиваемой цепочке
- Подсветка синтаксиса исходного кода — показывает файл вокруг строки выброса
- Полный стек вызовов — раскрываемый с ссылками на файлы для интеграции с IDE