Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отлов фатальных ошибок 
V
    Опции темы
Garret
Дата 27.9.2006, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 16.9.2006
Где: Киев

Репутация: нет
Всего: 2



Собственно САБЖ. Можно ли это как нибудь сделать, что посоветуете? 
И еще, можно ли как то не только отрепортить об фатальной ошибке, но и спрятать ее, вывести какое то сообщение на страницу например?
PM MAIL WWW ICQ   Вверх
Greendrake
Дата 27.9.2006, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 364
Регистрация: 14.7.2005

Репутация: 1
Всего: 6



Цитата("PHP Documentation")
The following error types cannot be handled with a user defined function: E_ERROR, E_PARSE


ИМХО, нельзя, на то они и фатальные ошибки.
PM MAIL   Вверх
Garret
Дата 27.9.2006, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 16.9.2006
Где: Киев

Репутация: нет
Всего: 2



Да наверно так просто нельзя, я на ДКЛаб нашел только отлов фатальных ошибок с помощью префильтрации кода.
PM MAIL WWW ICQ   Вверх
boombick
Дата 27.9.2006, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 20.4.2005
Где: Moscow, Russia

Репутация: нет
Всего: 9



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


--------------------
Все вышесказанное - имхо, и на истину в последней инстанции не претендует
------
UNIX and other
PM MAIL WWW ICQ   Вверх
Garret
Дата 27.9.2006, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 16.9.2006
Где: Киев

Репутация: нет
Всего: 2



Честно говоря изучил исходник и статью, не помню что там про эксепшены было. Еще разок пересмотрю smile 
PM MAIL WWW ICQ   Вверх
Garret
Дата 27.9.2006, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 16.9.2006
Где: Киев

Репутация: нет
Всего: 2



Нет там про эксепшены ничего нет, конечно с их помощью можно отловить фатальные ошибки. Но пихать весь код туда не сильно хорошо, к тому же появляется ограничение ПХП5 smile 
PM MAIL WWW ICQ   Вверх
nerezus
Дата 4.10.2006, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Какого рода ошибки ты имеешь ввиду?


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Garret
Дата 5.10.2006, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 16.9.2006
Где: Киев

Репутация: нет
Всего: 2



Что много родов у фатальных ошибок? smile 
PM MAIL WWW ICQ   Вверх
MuToGeN
Дата 5.10.2006, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: 4
Всего: 32



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

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


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Garret
Дата 5.10.2006, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 16.9.2006
Где: Киев

Репутация: нет
Всего: 2



Цитата(MuToGeN @  5.10.2006,  11:06 Найти цитируемый пост)
обработчики ошибок уже будут установленны в первом скрипте
И что? Скрипт сдыхает, обработчики не отрабатывают.
PM MAIL WWW ICQ   Вверх
MuToGeN
Дата 5.10.2006, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: 4
Всего: 32



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


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
IZ@TOP
Дата 9.10.2006, 03:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Попробуйте include. Вроде как include отличается от require как раз тем что если происходит ошибка при include скрипт не останавливается, а если при require, то вылетает.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.0983 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.