Andreika
"PHP for nubies" reader
Popoff
вопрос "Использовать ли собаку?" философско-синтетический.. примерно также как и "сколько звезд на небе?". Ну раз хочется на него ответить - бог в помощь )
рискуя испортить зрение все ж прочитал заготовку - очень уж цитаты автором себя любимого, да еще и из "вышенаписанного" заинтересовали.
>его исключили бы из языка.
дык осталось твою статью перевести на английский и разрабочкикам.. уберут сразу же
в общем при прочтении на каждом втором предложении появлясь мысль, начинающаяся с "фигня какая...", "автор забыл написать имхо..", "спорно...", "это уже было написано выше...", но когда пошли обрывающиеся предложения и странный код решил не заострять на этом внимание - всеж это не финальная версия... кста, ответ на "почему так много" можно не писать - текст можно сократить вчетверо, не потеряв оттуда ни одной мысли )
==========
небольшие комменты самому к тексту :
Собака может применяться только тогда, когда программист предусмотрел собственные средства обработки сообщений об ошибке ... можно порекомендовать set_error_handler()
вот как раз в этом случае @ очень бы помогла, но к сожалению бесполезна - ошибка в обработчик попадет в любом случае
---
Написано в статье много интересного, но к сожалению непонятно о ком.. да и вопросов на форуме по поводу собаки не припомню, поэтому бум думать логически
зачем нужна @ ? - чтобы подавить сообщение об ошибке
когда надо его подавить?
1. когда я пишу код, который считаю правильным, в отличие от интерпритатора, выдающего мне нотисы
- абсолютно правильный код, всегда возвращающий мне то, что нужно.. какой такой нотис-шмотис, ничего не знаю, пишу
и вперед
2. когда код временами выдает мне какое-то непонятное сообщение
все выдает и выдает про какой-то непонятный MySQL result resource... не знаю я никакого MySQL result resource... пишу
и радуюсь отсутствию ошибок )
и там и там я поставил @ вполне сознательно.. в первом случае заранее зная как оно будет, во втором случае попадая на эту ошибку я намеренно от нее "избавляюсь"...
я видел код, вызывающий ошибку! я думал над ним! я пытался его исправить! получилось в меру способностей... я сделал все от меня зависящее.. и вообще - я не понимаю принципов отладки скриптов.. я отключил сообщение об этой ошибке! если мне ЭТО каждый час будет сваливаться на мыло мне легче от этого станет? сомневаюсь...
шанс, что я "убъю" какую то другую ошибку в этом коде (а код обычно маленький по размеру) есть, но маленький... но есть %)
а у тебя получается статья для некоего абстрактного программера, у которого каждая строчка кода начинается с @ - он действительно не узнает о ошибках в скрипте.. или они существуют?
ЗЫ. а покажи пожалуйста код, используемый тобой в обработчике ошибок для записи ошибки в лог и вывода ее на экран если надо
вопрос "Использовать ли собаку?" философско-синтетический.. примерно также как и "сколько звезд на небе?". Ну раз хочется на него ответить - бог в помощь )
рискуя испортить зрение все ж прочитал заготовку - очень уж цитаты автором себя любимого, да еще и из "вышенаписанного" заинтересовали.
>его исключили бы из языка.
дык осталось твою статью перевести на английский и разрабочкикам.. уберут сразу же
в общем при прочтении на каждом втором предложении появлясь мысль, начинающаяся с "фигня какая...", "автор забыл написать имхо..", "спорно...", "это уже было написано выше...", но когда пошли обрывающиеся предложения и странный код решил не заострять на этом внимание - всеж это не финальная версия... кста, ответ на "почему так много" можно не писать - текст можно сократить вчетверо, не потеряв оттуда ни одной мысли )
==========
небольшие комменты самому к тексту :
Собака может применяться только тогда, когда программист предусмотрел собственные средства обработки сообщений об ошибке ... можно порекомендовать set_error_handler()
вот как раз в этом случае @ очень бы помогла, но к сожалению бесполезна - ошибка в обработчик попадет в любом случае
---
Написано в статье много интересного, но к сожалению непонятно о ком.. да и вопросов на форуме по поводу собаки не припомню, поэтому бум думать логически
зачем нужна @ ? - чтобы подавить сообщение об ошибке
когда надо его подавить?
1. когда я пишу код, который считаю правильным, в отличие от интерпритатора, выдающего мне нотисы
PHP:
$id = intval($_REQUEST['id']);
PHP:
$id = @intval($_REQUEST['id']);
2. когда код временами выдает мне какое-то непонятное сообщение
PHP:
$res = mysql_query("SELECT * FROM t WHERE a=$id");
while ($r = mysql_fetch_assoc($res)) { /* .... */ }
PHP:
$res = mysql_query("SELECT * FROM t WHERE a=$id");
while ($r = @mysql_fetch_assoc($res)) { /* .... */ }
и там и там я поставил @ вполне сознательно.. в первом случае заранее зная как оно будет, во втором случае попадая на эту ошибку я намеренно от нее "избавляюсь"...
я видел код, вызывающий ошибку! я думал над ним! я пытался его исправить! получилось в меру способностей... я сделал все от меня зависящее.. и вообще - я не понимаю принципов отладки скриптов.. я отключил сообщение об этой ошибке! если мне ЭТО каждый час будет сваливаться на мыло мне легче от этого станет? сомневаюсь...
шанс, что я "убъю" какую то другую ошибку в этом коде (а код обычно маленький по размеру) есть, но маленький... но есть %)
а у тебя получается статья для некоего абстрактного программера, у которого каждая строчка кода начинается с @ - он действительно не узнает о ошибках в скрипте.. или они существуют?
ЗЫ. а покажи пожалуйста код, используемый тобой в обработчике ошибок для записи ошибки в лог и вывода ее на экран если надо