Spec-Zone.ru › CakePHP 2.10

Класс 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. (https://cakefoundation.org)
Лицензия: MIT License
Расположение: 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
Код ошибки для сопоставления

Возвращает

массив
Массив сообщения об ошибке и место лога.
END_OF_DOCUMENT_MARKER

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

$_bailExceptionRenderingsource

protected static boolean

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

false

© 2005–2017 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.10/class-ErrorHandler.html

Spec-Zone.ru

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