Spec-Zone.ru › CakePHP 2.8

Класс 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 License
Расположение: Cake/Error/ErrorHandler.php

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

  • $_bailExceptionRendering protected static
    boolean

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

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

  • _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
    Генерирует страницу ошибки, когда происходит ошибка типа fatal.
  • mapErrorCode() public static
    Преобразует код ошибки в слово Ошибка и регистрирует местоположение.

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

_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 )

Генерирует страницу ошибки, когда происходит ошибка типа fatal.

Параметры

целое число $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.
http://api.cakephp.org/2.8/class-ErrorHandler.html

Spec-Zone.ru

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