Классификация ошибок.
Ошибки можно классифицировать по нескольким признакам.
По фатальности:
- Фатальные — неустранимые ошибки, которые приводят к остановке скрипта.
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);
?>
Добавить комментарий