Переопределение обработчика ошибок PEAR - PullRequest
0 голосов
/ 08 июня 2010

В настоящее время я работаю над приложением, которое требует много внешних библиотек.Моя работа прямо сейчас заключается в установке уникального обработчика ошибок, который будет обрабатывать каждую ошибку.

До сих пор я обнаружил 7 различных типов ошибок PEAR:

  • PEAR_ERROR_RETURN:
  • PEAR_ERROR_EXCEPTION:
  • PEAR_ERROR_CALLBACK:
  • PEAR_ERROR_PRINT:
  • PEAR_ERROR_TRIGGER:
  • PEAR_ERROR_DIE:

1 Ответ

0 голосов
/ 08 июня 2010

Ваш вопрос звучит так, как будто вы хотите, чтобы одна функция обрабатывала все предупреждения, ошибки и исключения.

Для E_ERROR, я думаю, тебе не повезло. Это указывает на фатальную ошибку времени выполнения, которую PHP не может восстановить, поэтому ваш скрипт обречен на неудачу.

С исключениями вы можете сделать set_exception_handler("funcName"); для обработки всех необработанных исключений при выполнении вашей программы. Однако это должно быть абсолютное последнее средство для обработки исключений. Защитная сетка, если хотите, для всего, что проскальзывает сквозь трещины вашей попытки / ловли. Причина этого (и для обработки любой глобальной ошибки, подобной этой) заключается в том, что у вас нет возможности восстановиться после исключения, так как set_exception_handler не возвращает значение и он все равно вышел из стека программы.

Щедро используйте try / catch в своем приложении. Это может показаться утомительным или пустой тратой времени, но правда в том, что ваша программа в какой-то момент потерпит неудачу . Это неизбежно, независимо от того, насколько вы хороший программист. Правильное использование обработки исключений позволит вашему приложению корректно закрыть или даже правильно восстановиться после исключения.

...