Spec-Zone.ru › CakePHP 2.9

Класс ErrorHandler

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

Неперехваченные исключения

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

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

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

  • Установите Configure::write('Exception.handler', 'YourClass::yourMethod');
  • Создайте AppController::appError();
  • Установите Configure::write('Exception.renderer', 'YourClass');

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

Это предоставляет полный контроль над процессом обработки исключений. Выбранный класс должен быть загружен в вашем файле app/Config/bootstrap.php, чтобы он был доступен для обработки любых исключений. Вы можете определить обработчик как любой тип обратного вызова. Использование Exception.handler переопределяет все другие настройки и логику обработки исключений.

Использование AppController::appError();

Этот метод контроллера вызывается вместо стандартного отображения исключений. Он получает брошенное исключение в качестве единственного аргумента. Вы должны реализовать обработку ошибок в этом методе. Использование AppController::appError() переопределяет любые настройки для Exception.renderer.

Использование пользовательского рендерера с Exception.renderer

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

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

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

Используя встроенную обработку исключений, вы можете регистрировать все исключения, которые обрабатываются ErrorHandler, установив Exception.log в значение true в вашем файле core.php. Включение этого позволит регистрировать каждое исключение в CakeLog и настроенных логгерах.

Ошибки PHP

Обработчик ошибок также предоставляет встроенные возможности для обработки ошибок PHP (trigger_error). В режиме отладки ошибки будут выводиться на экран с помощью отладчика. В режиме производства ошибки будут регистрироваться в CakeLog. Вы можете контролировать, какие ошибки регистрируются, настроив Error.level в вашем файле core.php.

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

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

Контроль над тем, какие ошибки регистрируются/отображаются

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

Например: Configure::write('Error.level', E_ALL & ~E_NOTICE);

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

Пакет: Cake\Error
См.: ExceptionRenderer для получения дополнительной информации о том, как настроить отображение исключений.
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: Лицензия MIT
Расположение: Cake/Error/ErrorHandler.php

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

  • $_bailExceptionRendering protected static
    boolean

    Выполнять ли рендеринг исключения, если сам рендерер бросает исключения.

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

  • _getErrorMessage() protected static
    Генерирует строку для описания ошибки.
  • _getMessage() protected static
    Генерирует отформатированное сообщение об ошибке
  • _log() protected static
    Обрабатывает регистрацию исключений
  • handleError() public static

    Установлен как обработчик ошибок по умолчанию CakePHP. Используйте Configure::write('Error.handler', $callback), чтобы использовать собственные методы обработки ошибок. Эта функция будет использовать Debugger для отображения ошибок, когда debug > 0. И будет регистрировать ошибки в CakeLog, когда debug == 0.

  • handleException() public static
    Установлен как обработчик исключений по умолчанию процессом загрузки CakePHP.
  • handleFatalError() public static
    Генерирует страницу ошибки при возникновении критической ошибки.
  • mapErrorCode() public static
    Преобразует код ошибки в слово «Ошибка» и местоположение для регистрации.

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

_getErrorMessage()source protected static

_getErrorMessage( string $error , integer $code , string $description , string $file , integer $line )

Генерирует строку для описания ошибки.

Параметры

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

Возвращает

строка

_getMessage()source protected static

_getMessage( Exception $exception )

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

Параметры

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

Возвращает

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

_log()source protected static

_log( Exception|ParseError $exception , array $config )

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

Параметры

Исключение|ParseError $exception
Исключение для отображения.
массив $config
Массив настроек для регистрации.

Возвращает

логическое значение

handleError()source public static

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

Установлен как обработчик ошибок по умолчанию CakePHP. Используйте Configure::write('Error.handler', $callback), чтобы использовать собственные методы обработки ошибок. Эта функция будет использовать Debugger для отображения ошибок, когда debug > 0. И будет регистрировать ошибки в CakeLog, когда debug == 0.

Вы можете использовать Configure::write('Error.level', $value); для установки типов ошибок, которые будут здесь обрабатываться. Стеки вызовов для ошибок можно включить с помощью Configure::write('Error.trace', true);

Параметры

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

Возвращает

логическое значение
true, если ошибка была обработана

handleException()source public static

handleException( Exception|ParseError $exception )

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

Этот метод использует настроенный класс рендерера исключений, если он есть, или использует стандартный ExceptionRenderer.

Параметры

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

См.

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

handleFatalError()source public static

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

Генерирует страницу ошибки при возникновении критической ошибки.

Параметры

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

Возвращает

логическое значение

Исключения

FatalErrorException
Если рендерер исключений бросил исключение во время рендеринга, и debug > 0.
InternalErrorException
Если рендерер исключений бросил исключение во время рендеринга, и debug = 0.

mapErrorCode()source public static

mapErrorCode( integer $code )

Преобразует код ошибки в слово «Ошибка» и местоположение для регистрации.

Параметры

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

Возвращает

массив
Массив со словом «Ошибка» и местоположением для регистрации.

Подробности свойств

$_bailExceptionRenderingsource

protected static boolean

Выводить ли исключение, если сам рендерер выбрасывает исключения.

false

© 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.
https://api.cakephp.org/2.9/class-ErrorHandler.html

Spec-Zone.ru

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