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

Метод dontReport

Метод dontReport применяется к объекту Exceptions в классе Handler и позволяет исключить определённые типы исключений из системы логирования. Первым параметром передаётся имя класса исключения или массив классов исключений, которые не нужно записывать в журнал ошибок.

Синтаксис

<?php use IlluminateFoundationExceptionsHandler; class Handler extends Handler { public function register() { $this->dontReport($exception); } } ?>

Пример

Давайте исключим из отчёта исключение типа NotFoundHttpException, которое возникает при обращении к несуществующему маршруту:

<?php namespace AppExceptions; use IlluminateFoundationExceptionsHandler as BaseHandler; use SymfonyComponentHttpKernelExceptionNotFoundHttpException; class Handler extends BaseHandler { public function register() { $this->reportable(function ($e) { // }); $this->dontReport(NotFoundHttpException::class); } } ?>

Теперь при попытке перехода на несуществующий маршрут исключение не будет записано в файл логов, но пользователь всё равно увидит страницу с ошибкой 404.

Пример

Давайте исключим сразу несколько типов исключений с помощью массива классов:

<?php namespace AppExceptions; use IlluminateFoundationExceptionsHandler as BaseHandler; use SymfonyComponentHttpKernelExceptionNotFoundHttpException; use SymfonyComponentHttpKernelExceptionMethodNotAllowedHttpException; use SymfonyComponentHttpKernelExceptionTooManyRequestsHttpException; class Handler extends BaseHandler { public function register() { $this->reportable(function ($e) { // }); $this->dontReport([ NotFoundHttpException::class, MethodNotAllowedHttpException::class, TooManyRequestsHttpException::class, ]); } } ?>

Теперь исключения, связанные с недоступностью маршрута, неправильным методом запроса и превышением лимита запросов, не будут записываться в журнал ошибок.

Пример

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

<?php namespace AppExceptions; use IlluminateFoundationExceptionsHandler as BaseHandler; use IlluminateDatabaseEloquentModelNotFoundException; class Handler extends BaseHandler { public function register() { $this->reportable(function ($e) { // }); $this->dontReport(ModelNotFoundException::class); } } ?>

Теперь при попытке получить несуществующую модель из базы данных, исключение не будет залогировано, но пользователь получит стандартную страницу с ошибкой 404.

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

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