alestro
@alestro

Как реализовать вывод ошибок в php?

Есть некий ErrorHandler который отлавливает ошибки, формирует ответ и отправляет его броузеру.
try{
$response = $requestHandler->handler($request);
send($response);
} catch(Throwable $e){
$errorHandler->handle($e);
}

Если ошибка не связана с отправкой ответа, то все кашерно, в броузер улетают заговки и тело ответа, но если ошибка связанна с отправкой самого ответа, чаще всего если до это где-то уже был вывод и следовательно улетели заголовки. В таком случае приходится повторно отлавливать эксепшен и выводить только тело ответа. Насколько такой подход удачный и мож но ли сделать более кашерно?
  • Вопрос задан
  • 96 просмотров
Пригласить эксперта
Ответы на вопрос 1
@dedalqq
Если вы отправили заголовки то все, ничего уже не изменить. По этому остается только в начале полностью обработать запрос пользователя, и потом формировать ответ и, как варинт, просто буфиризировать в переменную (это если в лоб). После этого уже отдавать заголовки и тело страницы из буфера (так как тут точно ошибок, заставляющих менять тело ответа не будет) А вообще, видимо вы не разделяете бизнес логику и формирование ответа. Формирование конечной страницы не должно быть написано так, что вызывает ошибки. Хорошей практикой избежание этого перемешивание может быть использование шаблонизаторов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы