error_reporting(0) и собака

snaky

Новичок
error_reporting(0) и собака

Есть свой обработчик ошибок. Как в его теле отличить, когда стоит error_reporting(0), а когда перед функцией, при вызове которой произошла ошибка, стоит @? Если проставить error_reporting(E_ALL), но перед функцией поставить подаление сообщения об ошибке, то при ее возникновении внутри обработчика ошибок error_reporting() станет равным нулю.
Можно ли как-то различать эти два случая?
 

Фанат

oncle terrible
Команда форума
а зачем?
для чего вообще может понадобится error_reporting(0)?
Да и собака зачем, если обработчик ошибок?
 

snaky

Новичок
Я ведь спрашивал не о целесообразности собаки или error_reporting(0).
error_reporting(0) - для того, чтобы не выводить сообщения об ошибке пользователю в нормальном режиме функционирования сайта (не при отладке).
Собака - чтобы не выводить сообщение об ошибке в том месте где она возникла.
 

Фанат

oncle terrible
Команда форума
А я отвечал о нецелесообразности собаки или error_reporting(0). Я ведь не обязан писать только то, что ты спрашивал?
А если я спрашиваю - значит, у меня есть сомнения в обоснованности применения error_reporting(0)
поскольку
для того, чтобы не выводить сообщения об ошибке пользователю в нормальном режиме функционирования сайта (не при отладке).
логичнее использовать директиву display_errors

Про собаку не понял, если всё равно у тебя error_reporting(0)
 

Nimous

Guest
snaky

Интересно, а что вообще будет обрабатывать твой ОБРАБОТЧИК
при error_reporting(0)?
Да ещё и с собаками...
 

snaky

Новичок
А я отвечал о нецелесообразности собаки или error_reporting(0). Я ведь не обязан писать только то, что ты спрашивал?
А разве
в обоснованности
не похоже на "в целесообразности"?

Какой смысл задавать вопросы, если ответа не получаешь? Я же не прошу: "научите меня программировать" или "я не знаю для чего нужен error_reporting, объясните мне".

Про собаку не понял, если всё равно у тебя error_reporting(0)
в режиме отладки error_reporting не равен 0.

Мне нужно, чтобы и в режиме отладки (когда error_reporting = E_ALL), и в нормальном режиме (когда error_reporting = 0) в обработчике ошибок я мог точно определить, стояла перед функцией собака или нет.

Зачем мне это нужно? Да какая кому разница?! Мало ли где могут пригодится экзотические решения? Может я эксперименты какие провожу.
Вот и получается что большинство обсуждений на форуме это флуд. Ждешь ответа, а вместо этого самому приходится отвечать на вопросы типа "а зачем тебе это надо?", "для чего ты так делаешь?". Полно таких тем видел. Можно, хотя бы, сначала попытаться ответить на вопрос, а потом уже давать советы как надо и как не надо.

-~{}~ 28.05.05 16:40:

Автор оригинала: Nimous
snaky

Интересно, а что вообще будет обрабатывать твой ОБРАБОТЧИК
при error_reporting(0)?
Да ещё и с собаками...
Возможные варианты:
Писать ошибки в лог, завершать работу, вывдоить общее сообщение об ошибке на странице без указания конкретной информации.
Еще варианты?

Опять на вопросы отвечаю я ...
 

Фанат

oncle terrible
Команда форума
большинство обсуждений на форуме это флуд.
совершенно верно.
И только потому, что какой-нибудь ламер с завиральной идеей считает себя гением, и кладёт с большим прибором на то, что ему говорят. И получается флейм.
Нет, чтобы послушать более умных людей, и сделать, как говорят.
Какой смысл задавать вопросы, если ответа не получаешь?
Какой смысл задавать вопросы, если ответ тебя не интересует?
Ты ещё пристань ко мне с вопросом, как из 2х2 получить пять. А потом всем рассказывай, что на форуме на прямой вопрос не отвечают.
Зачем мне это нужно? Да какая кому разница?!
Мне разница. Мне западло отвечать на вопросы бессмысленные и высосанные из пальца.

Пока я вижу бессмысленный бред про собаки, которые зачем-то стоят в режиме ОТЛАДКИ, тогда как в режиме отладки никаких собак стоять не должно.
И про собак, которые стоят в режиме нулевого отображения ошибок, что вообще бессмысленно.

Так что все претензии к себе, любимому.
Хочешь, чтобы на вопрос ответили - соври что-нибудь поправдоподобнее.
Мало ли где могут пригодится экзотические решения? Может я эксперименты какие провожу.
Проводи - кто тебе не даёт? Nimous, может быть? Вилку из розетки выдёргивает? Ах, твои глупые идеи не разделяет всего лишь? Ну так ты сам догадаешься, куда ты можешь деть свои претензии к ответам, или подсказать?
 

SiMM

Новичок
> Полно таких тем видел. Можно, хотя бы, сначала попытаться ответить на вопрос, а потом уже давать советы как надо и как не надо.
Какой смысл овтечать на вопрос, заранее зная, что человек идёт не тем путём?
 

Фанат

oncle terrible
Команда форума
Возможные варианты:
Писать ошибки в лог, завершать работу, вывдоить общее сообщение об ошибке на странице без указания конкретной информации.
для всего этого собака не нужна. достаточно error_reporting(0).
у тебя проблемы с логикой, и мы помогаем тебе их исправить.
Набо спасибо говорить, а не требовать, чтобы тебе отвеачали так, как желает твоя левая нога.
 

snaky

Новичок
Автор оригинала: Фанат
для всего этого собака не нужна. достаточно error_reporting(0).
у тебя проблемы с логикой, и мы помогаем тебе их исправить.
Набо спасибо говорить, а не требовать, чтобы тебе отвеачали так, как желает твоя левая нога.
Уже и на оскорбления перешли... Спокойней нельзя? Я ведь не от внутренней злости все это говорил.
Когда я отвечал Nimous, про собаки я ничего не говорил и они там не причем.

Я задаю конкретный вопрос. Я не спрашиваю совета. Ответа нет. Если вопрос не понятен, другое дело. Говори об этом. Зачем задавать кучу других вопросов, если вопрос понятен, и при это опускаться до оскорблений? Я ни сколько не сомневаюсь в твоей крутизне.

Ты ещё пристань ко мне с вопросом, как из 2х2 получить пять. А потом всем рассказывай, что на форуме на прямой вопрос не отвечают.
Ну скажи ты, что это невозможно и ВСЕ!

И только потому, что какой-нибудь ламер с завиральной идеей считает себя гением
Обяъясни мне, как ты можешь судить о моем профессионализме или ламерстве по одному вопросу, при этом не зная, какие цели я преследую?

Проводи - кто тебе не даёт? Nimous, может быть? Вилку из розетки выдёргивает? Ах, твои глупые идеи не разделяет всего лишь? Ну так ты сам догадаешься, куда ты можешь деть свои претензии к ответам, или подсказать?
Этого вообще не понимаю. Разве я говорил, что мне кто-то мешает?


Какой смысл овтечать на вопрос, заранее зная, что человек идёт не тем путём?
Например, для того, чтобы знать, это в принципе возможно или нет. К тому же я не говоил, каким я путем иду. И вывод по тому вопросу о том, каким я путем иду, сделать тоже сложно.

Может поговорим по теме?

Хорошо, если так интересно предыстория вопроса, придется рассказать.
Весь вывод собирается в буфер. Если при выполнении скрипта не было ошибки, буфер уходит в браузер, если была, то происходит очистка буфера и вывод страницы с ошибкой ("На странице произошла ошибка. Обратитесь к тем то и к тем-то."). Хочется, чтобы это все не касалось функций, перед которыми есть собака.
Иногда не хочется делать кучу проверок, если я точно знаю, что вот такая-то функци точно будет выдавать ошибку при опрделеенных обстоятельствах, но мне на эту ошибку наплевать (например, удаление временного файла, когда его может и не быть). В этом случае можно поставить @. Кто-то скажет, что это не првильно. Но вопрос ведь в другом?
 

Фанат

oncle terrible
Команда форума
Уже и на оскорбления перешли...
Где ты здесь видишь оскорбления? Не путайся, пожалуйста, в собственном топике.
Ты, кажется, что-то изволил изречь про флуд. Ну так если ты умеешь читать цитирование, то слова про ламеров - это ответ на твои глубокомысленные замечания человека, который на форуме без году неделя, но уже берётся судить да рядить.
Не надо быть таким мнительным. Может, тебя в детстве много ругали и ты принимаешь всё на свой счёт, но пора бы уже адекватнее к себе относиться.
Этого вообще не понимаю. Разве я говорил, что мне кто-то мешает?
Поясняю. мои слова "проводи - кто тебе не даёт" относятся к тому, что факт проводимых тобой экспериментов никак не может влиять на ответы. проводишь? Проводи на здоровье. Но это же ты экспериментируешь, а не я или Nimous. Так с какой стати ты требуешь ответа на вопросы по своим экспериментам, если нам эти эксперименты кажутся глупостью?

Вообще, единственная мысль, которыю я хочу до тебя донести, заключается вот в чём: никто тебе не запрещает сидеть и ждать ответа на свой вопрос. С другой стороны - никто не запрещает высказываться в твоём топиае тем, кому есть что сказать. Однако, опять же - никто и не заставляет тебя отвечать на вопросы, которые тебе задают. Не нравтся вопросы - не отвечай. Только уйми, пожалуйста, свои претензии на тему "мне отвечают не на то, что я спрашивал". А тебе кто-то гарантировал такой ответ? Ты, может, форум с предоплаченной службой поддержки спутал?
Тут всё добровольно.
И всё просто.
Ты задал вопрос.
Твой вопрос выглядит странно.
Поскольку 80% вопросов на этом форуме задаются от незнания/непонимания - у людей возникает вполне понятное желание вопрос уточнить. Не вижу здесь никакого криминала.

Надеюсь, ты всё понял, и эту тему можно закрыть и перейти к твоему вопросу.
 

snaky

Новичок
Фанат
Совсем другое дело :)

Я тоже немного перегнул палку. Согласен.

SiMM
Ты здесь говорил про exceptions. Они наверняка могли бы мне помочь, но они есть только в PHP5. Хотелось бы решить проблему в более ранних версиях PHP. Но сдается мне, что вряд ли это возможно. Ведь собака временно устанавливает error_reporting в 0. И отличить временный от глобального скорее всего нельзя.
 

Фанат

oncle terrible
Команда форума
Собственно, если вернуться к втоему вопросу, то всех сбило с толку упоминание тобой error_reporting(0), каковая директива не имеет смысла вообще, а в контексте твоего вопроса - и подавно. Тебе надо определить засобаченные ошибки? Ну вот так и пиши. Какая разница - какой при этом режим отображения ошибок?
Насколько я знаю, отследить собаку в обработчике невозможно. На это ещё Котеров года два назад жаловался, если я ничего не путаю.
 

SiMM

Новичок
1. А что мешает отслеживать ошибочный результат выполнения функции? Тот же fsockopen, к примеру, возвращает false, если сокет открыть не удалось. Т.е. пиши что-то типа $fp = @fsockopen(....) or my_function(...).
2. [m]ref.errorfunc#ini.track-errors[/m]?
 

snaky

Новичок
Автор оригинала: SiMM
1. А что мешает отслеживать ошибочный результат выполнения функции? Тот же fsockopen, к примеру, возвращает false, если сокет открыть не удалось. Т.е. пиши что-то типа $fp = @fsockopen(....) or my_function(...).
2. [m]ref.errorfunc#ini.track-errors[/m]?
Мне как раз наоборот, не нужно проверять на возможность появления ошибки. Мне нужно на нее наплевать, засобачив ее, но при этом чтобы и в обработчике ошибок такая ошибка не проявляла себя. Поставил я собаку, значит при возникновении ошибки абсолютно ничего делать не надо.
 

fixxxer

К.О.
Партнер клуба
Насколько я знаю, отследить собаку в обработчике невозможно. На это ещё Котеров года два назад жаловался, если я ничего не путаю.
Судя по стр. 683 его книги, решение за два года нашлось:
PHP:
function myErrorHandler(...) {
  if (error_reporting() == 0) return;
}
Проверять, рабочее ли это решение, мне лениво - поверю на слово. :)
 
Сверху