Я делаю скачок: мои PHP-скрипты ВСЕ будут терпеть неудачу изящно!
По крайней мере, это то, на что я надеюсь...
Я не хочу оборачивать (практически) каждую строку в операторах try...catch
, поэтому я думаю, что лучше всего сделать собственный обработчик ошибок для начала моих файлов.
Я проверяю это на странице практики:
function customError($level,$message,$file,$line,$context) {
echo "Sorry, an error has occured on line $line.<br />";
echo "The function that caused the error says $message.<br />";
die();
}
set_error_handler("customError");
echo($imAFakeVariable);
Это отлично работает, возвращая:
Извините, в строке 17 произошла ошибка. Функция, которая вызвала ошибку, сообщает неопределенную переменную: imAFakeVariable.
Однако эта настройка не работает для неопределенных функций.
function customError($level,$message,$file,$line,$context) {
echo "Sorry, an error has occured on line $line.<br />";
echo "The function that caused the error says $message.<br />";
die();
}
set_error_handler("customError");
imAFakeFunction();
Это возвращает:
Неустранимая ошибка: вызов неопределенной функции: imafakefunction() в /Library/WebServer/Documents/experimental/errorhandle.php в строке 17
Почему мой пользовательский обработчик ошибок не перехватывает неопределенные функции? Есть ли другие проблемы, которые это вызовет?