HLEB2 FAQ: Как обработать исключения и ошибки в фреймворке? Вопрос

24 Мая (ред)

Обработка ошибок в PHP - важная составляющая разработки приложения. К стандартным классам ошибок в PHP фреймворк HLEB2 добавляет свои собственные. Перехватывая ошибку по её классу или родительскому классу можно определить её тип и пустить выполнение программы по соответствующему пути.

Если вы плохо представляете иерархию ошибок в PHP, предварительно ознакомьтесь со статьёй на эту тему.

Классы собственных ошибок фреймворка находятся в папке /vendor/phphleb/framework/Constructor/Exceptions/ проекта и снабжены описанием. Вот некоторые из них:

Hleb/DatabaseException — Исключение возникло при работе с базой данных при использовании встроенного класса DB фреймворка. Сторонние ORM, используемые в проекте, будут иметь свои классы ошибок.

AsyncExitException — Попытка реализовать обычный exit() в асинхронном режиме с выбросом специальной "ошибки". Неудобством использования может быть сортировка при перехвате и обработке ошибок в коде, так как каждый раз нужно исключать эту ошибку из обработки, пропуская далее. Необходимость вызвана использованием редиректа с использованием header с немедленным завершением исполнения программы.

Hleb\InvalidLogLevelException — Возникает при неправильно указанном уровне логирования.

Следующие классы предназначены для удобства вывода страницы ошибок в контроллерах. Их применение может быть оправдано только до выведения текста на странице, так как код ошибки будет добавлен как обычный HTML-код. Например:

throw new \Hleb\Http404NotFoundException();

Выведет HTML страницы ошибки 404 с соответствующим HTTP-статусом 404.

Таких классов на данное время несколько:

  • Hleb\Http400BadRequestException - Этот ответ означает, что сервер не понимает запрос из-за неверного синтаксиса.
  • Hleb\Http401UnauthorizedException - Для получения запрашиваемого ответа нужна аутентификация.
  • Hleb\Http403ForbiddenException - У клиента нет прав доступа к содержимому, поэтому сервер отказывается дать надлежащий ответ.
  • Hleb\Http404NotFoundException - Сервер не может найти запрашиваемый ресурс.
  • Hleb\Http406NotAcceptableException - Запрошенный URI не может удовлетворить переданным в заголовке характеристикам.
  • Hleb\Http409ConflictException - Запрос не может быть выполнен из-за конфликтного обращения к ресурсу.
  • Hleb\Http410GoneException - Такой ответ сервер посылает, если ресурс раньше был по указанному URL, но был удалён и теперь недоступен.
  • Hleb\Http500InternalServerErrorException - Этот ответ означает, что возникла ошибка на стороне сервера.
fomiash fomiash + 215
Опубликовано в PHP фреймворк HLEB
К сожалению, ответов пока нет


Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.