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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужны PHP 5.x ошибки в виде Exception 
:(
    Опции темы
slogic
Дата 30.9.2008, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Мне нужна система на базе исключений. То, что делает PHP очень не нравится, потому что мне надо чтобы после ошибки (будь это ошибка уровня ERROR или NOTICE, т.е. в зависимости от error_reporting) контекст возвращался к месту, где я ловлю исключения. PHP использую 5.2.x. Кто может что посоветовать? Пока приходит в голову одна плохая идея. В контексте, где ошибки PHP не должны прерывать работу скрипта в целом, а возбуждаться в виде исключений, я создаю свой обработчик ошибок и навешиваю его (set_error_handler), а потом из него выбрасываю исключение. Но таких мест может быть очень много.
PM MAIL   Вверх
skyboy
Дата 30.9.2008, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


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

Репутация: 75
Всего: 260



Цитата(slogic @  30.9.2008,  17:58 Найти цитируемый пост)
set_error_handler

не перехватывает ошибки уровня E_ERROR и выше(всякие там E_FATAL_ERROR и E_CORE_ERROR или как там её)
PM MAIL   Вверх
slogic
Дата 1.10.2008, 02:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Так-с, пока нарыл вот это: http://forum.dklab.ru/viewtopic.php?p=146438

ЗЫ. И еще тут: http://habrahabr.ru/blogs/php/30399/

Короче сводится к тому, до чего я сам догадался. Хотя использование Exceptionizer.php сильно облегчило задачу.

Жалко что нет встроенного "переключателя" в самом PHP 5.x, устанавливаемого, например, через ini_set().

А вот с невозможностью перехвата E_ERROR придется мириться.

Можете закрыть тему.

Это сообщение отредактировал(а) slogic - 1.10.2008, 02:55
PM MAIL   Вверх
MoLeX
Дата 1.10.2008, 05:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


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

Репутация: 46
Всего: 140



slogic, если решил тему то помечай ее соответсвенным образом


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
sTa1kEr
Дата 1.10.2008, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Цитата(slogic @  1.10.2008,  03:27 Найти цитируемый пост)
Хотя использование Exceptionizer.php сильно облегчило задачу.

Непонимаю, зачам такие велосипеды? Чем не подходит родной PHP метод с родным исключением от сюда http://php.net/ErrorException ?

Цитата(slogic @  1.10.2008,  03:27 Найти цитируемый пост)
Жалко что нет встроенного "переключателя" в самом PHP 5.x, устанавливаемого, например, через ini_set().

Нету смысла для двух строчек кода создавать отдельный параметр в настройках.

Цитата(slogic @  1.10.2008,  03:27 Найти цитируемый пост)
А вот с невозможностью перехвата E_ERROR придется мириться.

Все ошибки уровня E_ERROR и выше (в т.ч. E_PARSE, etc) можно перехватить по методу Котерова через ob handler, но исключительно для того, что бы выдать осмысленный текст ошибки и/или формировать какую-либо отладочную информацию. К примеру, я использую этот метод для того, что бы при генерации любой ошибки была собрана отладочная информации и отправлена на консоль/FireBug/консоль на JavaScript и пр.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

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


 




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


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

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