Spec-Zone.ru › CakePHP 3.1

Класс 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
См.: ExceptionRenderer для получения дополнительной информации о настройке рендеринга исключений.
Расположен в Error/ErrorHandler.php

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

__constructsource public

__construct( array $options [] )

Конструктор

Параметры

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

_clearOutputsource protected

_clearOutput( )

Очистить буферы вывода, чтобы страницы ошибок отображались должным образом.

Легко дублируется в тестировании.

_displayErrorsource protected

_displayError( array $error , boolean $debug )

Отобразить ошибку.

Шаблонный метод BaseErrorHandler.

Только при debug > 2 будет отображена отформатированная ошибка.

Параметры

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

_displayExceptionsource protected

_displayException( Exception $exception )

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

Параметры

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

Возможные исключения

Exception
Когда выбранный рендерер исключений недопустим.

_sendResponsesource protected

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

Метод, который легко дублируется в тестировании.

Параметры

строка|Cake\Network\Response $response
Либо сообщение, либо объект ответа.

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

_getMessagesource protected

_getMessage( Exception $exception )

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

Параметры

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

Возвращает

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

_logErrorsource protected

_logError( string $level , array $data )

Записать ошибку.

Параметры

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

Возвращает

boolean
bool

_logExceptionsource protected

_logException( Exception $exception )

Обрабатывает регистрацию исключений

Параметры

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

Возвращает

boolean
bool

_stopsource protected

_stop( integer $code )

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

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

Параметры

целое число $code
Код выхода.

handleErrorsource 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, если ошибка была обработана

handleExceptionsource public

handleException( Exception $exception )

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

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

Параметры

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

Возможные исключения

Exception
Когда класс рендерера не найден

См.

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

handleFatalErrorsource public

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

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

Параметры

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

Возвращает

boolean
bool

mapErrorCodesource public static

mapErrorCode( integer $code )

Преобразовать код ошибки в сообщение об ошибке и местоположение для логов.

Параметры

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

Возвращает

array
Массив из сообщения об ошибке и местоположения для логов.

registersource public

register( )

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

wrapAndHandleExceptionsource public

wrapAndHandleException( Exception|Error $exception )

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

Параметры

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

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

$_optionssource

protected массив

Параметры для обработки ошибок.

[]

© 2005–2016 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.
http://api.cakephp.org/3.1/class-Cake.Error.ErrorHandler.html

Spec-Zone.ru

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