Простой ответ: вы не можете. См. Руководство :
Следующие типы ошибок не могут обрабатываться с помощью определенной пользователем функции: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING и большая часть E_STRICT поднятый в файле, где вызывается set_error_handler ().
blockquote>Для каждой другой ошибки вы можете использовать
set_error_handler()
EDIT:
Поскольку кажется, что есть несколько дискуссий по этой теме, в отношении использования
register_shutdown_function
, мы должны взглянуть на определение обработки: для меня обработка ошибки означает ловить ошибку и реагировать таким образом, что это «приятно» «для пользователя и базовые данные (базы данных, файлы, веб-службы и т. д.).Используя
register_shutdown_function
, вы не можете обрабатывать ошибку из кода, в котором она была так что код все равно перестанет работать в точке, где происходит ошибка. Однако вы можете представить пользователю сообщение об ошибке вместо белой страницы, но вы не можете, например, отбросить все, что ваш код сделал до сбоя.