Spec-Zone.ru › CakePHP 3.6

Класс ErrorHandler

Обработчик ошибок предоставляет базовые обработку ошибок и исключений для вашего приложения. Он перехватывает и обрабатывает все необработанные исключения и ошибки. Отображает полезные ошибки фреймворка, когда debug > 1.

Необработанные исключения

Когда debug < 1, CakeException будет отображать ошибки 404 или 500. Если возникает необработанное исключение, и оно является типом, который ErrorHandler не знает, оно будет обрабатываться как ошибка 500.

Реализация обработки исключений, специфичных для приложения

Вы можете реализовать обработку исключений, специфичных для приложения, несколькими способами. Каждый подход предоставляет вам различный уровень контроля над процессом обработки исключений.

  • Измените config/error.php и настройте пользовательскую обработку исключений.
  • Используйте параметр exceptionRenderer для инъекции обработчика исключений. Это позволит сохранить существующую логику обработки, но переопределить логику отображения.

Создание собственного обработчика исключений

Это предоставляет вам полный контроль над процессом обработки исключений. Выбранный класс должен быть загружен в config/error.php и зарегистрирован как обработчик исключений по умолчанию.

Использование пользовательского обработчика с exceptionRenderer

Если вы не хотите контролировать обработку исключений, но хотите изменить способ отображения исключений, вы можете использовать параметр exceptionRenderer для выбора класса для отображения страниц исключений. По умолчанию используется Cake\Error\ExceptionRenderer. Ваш пользовательский класс обработчика исключений должен быть размещен в src/Error.

Ваш пользовательский обработчик должен ожидать исключение в своем конструкторе и реализовывать метод render. Невыполнение этого приведет к дополнительным ошибкам.

Регистрация исключений

Используя встроенную обработку исключений, вы можете регистрировать все исключения, которые обрабатываются ErrorHandler, установив параметр log в значение true в config/error.php. Включение этого параметра будет регистрировать каждое исключение в Log и настроенных обработчиках логов.

Ошибки PHP

Обработчик ошибок также предоставляет встроенные функции для обработки ошибок PHP (trigger_error). В режиме отладки ошибки будут выводиться на экран с помощью отладчика. В режиме работы ошибки будут регистрироваться в Log. Вы можете контролировать, какие ошибки регистрировать, установив параметр errorLevel в файле config/error.php.

Регистрация ошибок

При использовании ErrorHandler для обработки ошибок вы можете включить регистрацию ошибок, установив параметр log в значение true. Это будет регистрировать все ошибки в настроенных обработчиках логов.

Управление тем, какие ошибки регистрируются/отображаются

Вы можете контролировать, какие ошибки регистрируются/отображаются ErrorHandler, установив errorLevel. Установка этого значения на одно или несколько значений констант E_* включит только указанные ошибки:

$options['errorLevel'] = E_ALL & ~E_NOTICE;

Это включит обработку всех ошибок, кроме Notice.

Cake\Error\BaseErrorHandler
Extended by Cake\Error\ErrorHandler
Пространство имен: Cake\Error
См.: \Cake\Error\ExceptionRenderer для получения дополнительной информации о настройке отображения исключений.
Расположение: Error/ErrorHandler.php

Унаследованные свойства

  • _handled, _options

Краткое описание методов

  • __construct() public
    Конструктор
  • _clearOutput() protected
    Очистка буферов вывода для правильного отображения страниц ошибок.
  • _displayError() protected
    Отображение ошибки.
  • _displayException() protected
    Отображение тела ответа исключения.
  • _logInternalError() protected
    Регистрирует ошибки PHP5 и PHP7.
  • _sendResponse() protected
    Метод, который можно легко подменить при тестировании.

Подробное описание методов

__construct()source public

__construct( array $options = [] )

Конструктор

Параметры

массив $options необязательный []
Параметры обработки ошибок.

_clearOutput()source protected

_clearOutput( )

Очистка буферов вывода для правильного отображения страниц ошибок.

Легко подменяется при тестировании.

_displayError()source protected

_displayError( array $error , boolean $debug )

Отображение ошибки.

Метод-шаблон класса BaseErrorHandler.

Параметры

массив $error
Массив данных об ошибке.
булево $debug
Является ли приложение в режиме отладки.

_displayException()source protected

_displayException( Exception $exception )

Отображение тела ответа исключения.

Параметры

Исключение $exception
Исключение для отображения.

Исключения

Исключение
При некорректном обработчике исключений.

_logInternalError()source protected

_logInternalError( Throwable|Exception $exception )

Регистрирует ошибки PHP5 и PHP7.

Часть PHP5 будет удалена с версией 4.0.

Параметры

Throwable|Исключение $exception
Исключение.

_sendResponse()source protected

_sendResponse( string|Cake\Http\Response $response )

Метод, который можно легко подменить при тестировании.

Параметры

строка|Cake\Http\Response $response
Сообщения или объект ответа.

Методы, унаследованные от Cake\Error\BaseErrorHandler

_getMessage()source protected

_getMessage( Exception $exception )

Генерирует отформатированное сообщение об ошибке

Параметры

Исключение $exception
Экземпляр исключения

Возвращает

строка
Отформатированное сообщение

_logError()source protected

_logError( string $level , array $data )

Регистрация ошибки.

Параметры

строка $level
Название уровня лога.
массив $data
Массив данных об ошибке.

Возвращает

булево

_logException()source protected

_logException( Exception $exception )

Обработка регистрации исключения

Параметры

Исключение $exception
Экземпляр исключения.

Возвращает

булево

_requestContext()source protected

_requestContext( Cake\Http\ServerRequest $request )

Получение контекста запроса для отслеживания ошибок/исключений.

Параметры

Cake\Http\ServerRequest $request
Запрос для чтения.

Возвращает

строка

_stop()source protected

_stop( integer $code )

Остановка процесса.

Реализовано в дочерних классах, которым это нужно.

Параметры

целое $code
Код завершения.
END_OF_DOCUMENT_MARKER

handleError()source public

handleError( integer $code , string $description , string|null $file = null , integer|null $line = null , array|null $context = null )

Установлен в качестве обработчика ошибок по умолчанию CakePHP.

Используйте config/error.php для настройки или замены этого обработчика ошибок. Эта функция будет использовать Debugger для отображения ошибок, когда debug > 0. И будет регистрировать ошибки в Log, когда debug == 0.

Вы можете использовать опцию «errorLevel», чтобы задать тип обрабатываемых ошибок. Стек вызовов для ошибок можно включить с помощью опции «trace».

Параметры

целое число $code
Код ошибки
строка $description
Описание ошибки
строка|null $file необязательно null
Файл, в котором произошла ошибка
целое число|null $line необязательно null
Строка, которая вызвала ошибку
массив|null $context необязательно null
Контекст

Возвращает

boolean
True, если ошибка была обработана

handleException()source public

handleException( Exception $exception )

Обработка неперехваченных исключений.

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

Параметры

Исключение $exception
Экземпляр исключения.

Выбрасывает

Исключение
При отсутствии класса рендера

См. также

https://secure.php.net/manual/en/function.set-exception-handler.php

handleFatalError()source public

handleFatalError( integer $code , string $description , string $file , integer $line )

Отображение/регистрация критической ошибки.

Параметры

целое число $code
Код ошибки
строка $description
Описание ошибки
строка $file
Файл, в котором произошла ошибка
целое число $line
Строка, которая вызвала ошибку

Возвращает

boolean

increaseMemoryLimit()source public

increaseMemoryLimit( integer $additionalKb )

Увеличивает настройку ini PHP «memory_limit» на указанную величину в килобайтах.

Параметры

целое число $additionalKb
Число в килобайтах

mapErrorCode()source public static

mapErrorCode( integer $code )

Преобразует код ошибки в слово ошибки и место регистрации.

Параметры

целое число $code
Код ошибки для преобразования

Возвращает

массив
Массив слова ошибки и места регистрации.

register()source public

register( )

Регистрация обработчиков ошибок и исключений.

wrapAndHandleException()source public

wrapAndHandleException( Exception|Error $exception )

Проверяет тип переданного исключения. Если это экземпляр Error, то он оборачивает переданный объект внутри другого объекта исключения для обеспечения обратной совместимости.

Параметры

Исключение|Ошибка $exception
Исключение для обработки

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.6/class-Cake.Error.ErrorHandler.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API