Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Для профи > Отлов фатальных ошибок


Автор: Garret 27.9.2006, 15:29
Собственно САБЖ. Можно ли это как нибудь сделать, что посоветуете? 
И еще, можно ли как то не только отрепортить об фатальной ошибке, но и спрятать ее, вывести какое то сообщение на страницу например?

Автор: Greendrake 27.9.2006, 15:34
Цитата("PHP Documentation")
The following error types cannot be handled with a user defined function: E_ERROR, E_PARSE


ИМХО, нельзя, на то они и фатальные ошибки.

Автор: Garret 27.9.2006, 16:10
Да наверно так просто нельзя, я на ДКЛаб нашел только отлов фатальных ошибок с помощью префильтрации кода.

Автор: boombick 27.9.2006, 17:13
Используйте исключения (Exceptions)
Котеров приводил пример класса, который перехватывает все уровни ошибок

Автор: Garret 27.9.2006, 17:21
Честно говоря изучил исходник и статью, не помню что там про эксепшены было. Еще разок пересмотрю smile 

Автор: Garret 27.9.2006, 17:40
Нет там про эксепшены ничего нет, конечно с их помощью можно отловить фатальные ошибки. Но пихать весь код туда не сильно хорошо, к тому же появляется ограничение ПХП5 smile 

Автор: nerezus 4.10.2006, 17:26
Какого рода ошибки ты имеешь ввиду?

Автор: Garret 5.10.2006, 10:32
Что много родов у фатальных ошибок? smile 

Автор: MuToGeN 5.10.2006, 11:06
1. Пропускаем вызов всех скриптов через нечто, в котором присутствует set_error_handler(), set_exception_handler() и своя писанина (например, логирование ошибок вместе со стеком вызова или отсылка этого дела на мыло).
2. require('скрипт, который может выдать fatal или parse error');

Даже если подключаемый скрипт приведет к parse error, обработчики ошибок уже будут установленны в первом скрипте.

Автор: Garret 5.10.2006, 14:16
Цитата(MuToGeN @  5.10.2006,  11:06 Найти цитируемый пост)
обработчики ошибок уже будут установленны в первом скрипте
И что? Скрипт сдыхает, обработчики не отрабатывают.

Автор: MuToGeN 5.10.2006, 15:49
Хм...
Да, протестил, не пашет. Хотя помнится, что подобным образом отлавливал ошибки.

Автор: IZ@TOP 9.10.2006, 03:09
Попробуйте include. Вроде как include отличается от require как раз тем что если происходит ошибка при include скрипт не останавливается, а если при require, то вылетает.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)