Set_error_handler - встановлює призначений для користувача обробник помилок
(PHP 4> = 4.0.1, PHP 5)
set_error_handler - встановлює призначений для користувача обробник помилок.
string set_error_handler (string error_handler)
Встановлює для користувача функцію (error_handler) для обробки помилок в скрипті.
Повертає раніше певний оброблювач помилок (якщо є), FALSE при помилці.
Ця функція може використовуватися для визначення вашого власного способу обробки помилок на етапі прогону, наприклад, в додатках, в яких вам потрібно зачистити дані / файли при виникненні критичних помилок, або якщо вам потрібно переключити помилку при певних умовах (використовую trigger_error ()).
Примітка: наступні типи помилок не можуть бути оброблені користувальницької функцією: E_ERROR. E_PARSE. E_CORE_ERROR. E_CORE_WARNING. E_COMPILE_ERROR і E_COMPILE_WARNING.
список параметрів
error_handler - призначена для користувача функція наступного виду:
handler (int errno, string errstr [, string errfile [, int errline [, array errcontext]]])
Користувацька функція повинна приймати 2 параметра: error-код і рядок з описом помилки. Починаючи з PHP 4.0.2, надаються додаткові 3 параметри: ім'я файлу, в якому з'явилася помилка, номер рядка, в якій з'явилася помилка, і контекст, в якому з'явилася помилка (масив, який вказує на активну таблицю символів в точці виникнення помилки).
значення, що повертаються
Повертає раніше певний оброблювач помилок (якщо є), FALSE при помилці.
Наступний приклад показує обробку внутрішніх винятків шляхом перемикання помилок і обробки їх користувальницької функцією:
Приклад 1. Обробка помилок за допомогою set_error_handler () і trigger_error ()
А коли ви запустите це скрипт-семпл:
vector a Array ([0] => 2 [1] => 3 [2] => foo [3] => 5.5 [4] => 43.3 [5] => 21.11) ---- vector b - a warning (b = log (PI) * a) WARNING [1024] Value at position 2 is not a number, using 0 (zero)
Array ([0] => 2.2894597716988 [1] => 3.4341896575482 [2] => 0 [3] => 6.2960143721717 [4] => 49.566804057279 [5] => 24.165247890281) ---- vector c - an error ERROR [ 512] Incorrect input vector, array of values expected
NULL ---- vector d - fatal error FATAL [256] log (x) for x