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

Метод shouldReport

Метод shouldReport используется в классе App\Exceptions\Handler для проверки необходимости отправки отчёта об исключении. Он принимает один параметр - экземпляр исключения, а возвращает true, если ошибка должна быть зарегистрирована в системах логирования и мониторинга, или false, если отправка отчёта не требуется. По умолчанию метод возвращает true для всех исключений, кроме тех, что были явно исключены из отчётности.

Синтаксис

<?php namespace App\Exceptions; use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; class Handler extends ExceptionHandler { // ... protected function shouldReport(Throwable $e) { return parent::shouldReport($e); } } ?>

Пример

Рассмотрим базовый пример использования метода для исключения конкретных типов ошибок из отчётности:

<?php namespace App\Exceptions; use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; use Illuminate\Database\Eloquent\ModelNotFoundException; use Throwable; class Handler extends ExceptionHandler { // ... protected function shouldReport(Throwable $e) { if ($e instanceof ModelNotFoundException) { return false; } return parent::shouldReport($e); } } ?>

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

"ModelNotFoundException не будет отправлен в отчёт"

Пример

Давайте настроим отправку отчётов только для критических ошибок, игнорируя все HTTP-исключения с кодом 404 и 403:

<?php namespace App\Exceptions; use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; use Throwable; class Handler extends ExceptionHandler { // ... protected function shouldReport(Throwable $e) { if ($e instanceof NotFoundHttpException || $e instanceof AccessDeniedHttpException) { return false; } return parent::shouldReport($e); } } ?>

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

"HTTP-исключения 404 и 403 исключены из отчётности"

Пример

Пример отправки отчётов только для исключений, связанных с базой данных:

<?php namespace App\Exceptions; use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; use Illuminate\Database\QueryException; use Throwable; class Handler extends ExceptionHandler { // ... protected function shouldReport(Throwable $e) { if ($e instanceof QueryException) { return true; } return false; } } ?>

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

"Отправлен отчёт только об ошибках базы данных"

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

  • метод report,
    который регистрирует исключение в системах логирования
  • метод render,
    который отображает исключение в HTTP-ответе
  • класс Exceptions,
    который предоставляет дополнительные методы для работы с исключениями
  • метод dontReport,
    который исключает типы исключений из отчётности
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить