18.07.2015

Основы PHP: Ошибки

Классификация ошибок.

Ошибки можно классифицировать по нескольким признакам.

По фатальности:

  • Фатальные - неустранимые ошибки, которые приводят к остановке скрипта.
    E_ERROR, E_PARSE, E_CORE_ERROR, E_COMPILE_ERROR.
  • Не фатальные - устранимые ошибки, появление которых не останавливает выполнение скрипта.
    E_WARNING, E_NOTICE, E_CORE_WARNING, E_COMPILE_WARNING, E_USER_WARNING, E_USER_NOTICE, E_STRICT, E_DEPRECATED, E_USER_DEPRECATED.
  • Смешанные - фатальные, но только, если не обработаны функцией, определенной пользователем в set_error_handler().
    E_USER_ERROR, E_RECOVERABLE_ERROR.

По возможности перехвата ошибки функцией, определенной в set_error_handler():

  • Перехватываемые (не фатальные и смешанные).
    E_USER_ERROR, E_RECOVERABLE_ERROR, E_WARNING, E_NOTICE, E_USER_WARNING, E_USER_NOTICE, E_STRICT, E_DEPRECATED, E_USER_DEPRECATED.
  • Не перехватываемые (фатальные).
    E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING.

Для определения того, какие ошибки попадут в отчет используется функция error_reporting().

Примеры использования функции:

<?php

// Выключение протоколирования ошибок
error_reporting(0);

// Включать в отчет простые описания ошибок
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Включать в отчет E_NOTICE сообщения (добавятся сообщения о
//непроинициализированных переменных или ошибках в именах переменных)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Добавлять сообщения обо всех ошибках, кроме E_NOTICE
error_reporting(E_ALL & ~E_NOTICE);

// Добавлять в отчет все PHP ошибки (см. список изменений)
error_reporting(E_ALL);

// Добавлять в отчет все PHP ошибки
error_reporting(-1);

// То же, что и error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

?>

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

This is Atomic

All the pages you see here are built with the sections & elements included with Atomic. Import any page or this entire site to your own Oxygen installation in one click.
GET OXYGEN
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram