Вышла альфа-версия PHP4+Zend Engine 2 (4.3.0-dev)

Вы ждете Zend Engine 2?

  • Да! Давно пора

    Голосов: 11 64,7%
  • Он мне ненужен в текщих проектах

    Голосов: 5 29,4%
  • Нет

    Голосов: 1 5,9%
  • А что это такое?

    Голосов: 0 0,0%

  • Всего проголосовало
    17
  • Опрос закрыт .

[VS]

Guest
Автор оригинала: webdeveloper

вот поэтому РНР так и остается детской игрушкой :mad:

если бы они хоть немного думали о том что они делают. а так ощущение что это какая то вечная бета :(
Зря ты. Без обратной совместимости нельзя. Практически нигде.
 

webdeveloper

Guest
Автор оригинала: [VS]

На С++ иногда их использую, но есть более красивые и стабильные подходы к обработке ошибок. На Java приходится их использовать из-за идеологии языка, это порой очень не удобно.

А по поводу тормозов - они нигде скорости не прибавляют, быстро их реализовать довольно проблематично.
Я на С++ почти совсем не писал. Я его очень плохо знаю. А на джаве мне это понравилось. Вроде ничего так получалось.


А чем именно он тебе не нравятся? Вроде все так стройненько там получается?
 

webdeveloper

Guest
Автор оригинала: [VS]

Зря ты. Без обратной совместимости нельзя. Практически нигде.
Я наверное те так выразился. то что они оставили обратную совместимость это то как раз хорошо. Плохо то что теперь они придумали новый вид конструкторов. Зачем только? Что нельзя былдо сдедлать деструктор вида __className() ? или уже так ~className()?

По крайней мере мне это не понраивлось. Может я конечно не прав.
 

webdeveloper

Guest
Автор оригинала: tony2001
извини, я не понимаю подобных рассуждений.
разговор о том, что надо развиваться постепенно, поддерживая хотя бы часть не очень старого кода.
и ничего плохого или удивительного я не вижу в цитате, которую ты привел.
я не думаю, что было бы лучше заставить всех срочно переписать все свои скрипты ("а мог бы и полоснуть!...").
Мне не понравилось то что они ввели новый вид конструкторов. Это значит что старые скоро станут не действительными и рано или поздно придется все переделывать. Видимо буду вообще без них писать.

или только утверждать ?
тогда давай аргументы.
Это зависит от того, что считать за аргумент. :)
 

[VS]

Guest
Автор оригинала: webdeveloper

Я на С++ почти совсем не писал. Я его очень плохо знаю. А на джаве мне это понравилось. Вроде ничего так получалось.


А чем именно он тебе не нравятся? Вроде все так стройненько там получается?
Тем что если в блок try/catch помещать несколько вызовов функций, то не знаешь откуда именно пришла ошибка, другими словами для грамотной обработки обычно приходится писать try/catch чуть-ли не вокруг каждого вызова функции. После этого не понятно, зачем вообще нужно try/catch когда можно просто возвращать true/false из функции, и устанавливать в обьекте класса функции флаги с описанием ошибки.
 

webdeveloper

Guest
Автор оригинала: [VS]

Тем что если в блок try/catch помещать несколько вызовов функций, то не знаешь откуда именно пришла ошибка, другими словами для грамотной обработки обычно приходится писать try/catch чуть-ли не вокруг каждого вызова функции. После этого не понятно, зачем вообще нужно try/catch когда можно просто возвращать true/false из функции, и устанавливать в обьекте класса функции флаги с описанием ошибки.
А вот ты о чем. Опять таки не знаю как в С++ а в джаве можно сделать так

try{
...
}catch(Exception e){
out.println("Error - " + e.getMessage());
}


И оно тебе само скажет где чего произошло. правда обработать ее с учетом того, где и какая ошибка произошла конечно сложнее.

p.s. А ты че не спишь? У тебя вроде же ночь должна быть?
 

[VS]

Guest
Автор оригинала: webdeveloper
А вот ты о чем. Опять таки не знаю как в С++ а в джаве можно сделать так
try{
...
}catch(Exception e){
out.println("Error - " + e.getMessage());
}
Дык по другому в яве и не сделаешь, там единственный вариант обработки исключений. В станрартном варианте в С++ точно также.

И оно тебе само скажет где чего произошло. правда обработать ее с учетом того, где и какая ошибка произошла конечно сложнее.
Ну если у тебя несколько функций из одного блока try/catch могут один и тот-же exception выкинуть, как ты узнаешь, какая из них его выкинула?

p.s. А ты че не спишь? У тебя вроде же ночь должна быть?
Я вообще сплю в "weird times" :) и вообще завтра на месяц покидаю интернет ... vacation, marriage, etc. :)
 

andrew005

Guest
Originally posted by webdeveloper

А вот ты о чем. Опять таки не знаю как в С++ а в джаве можно сделать так

try{
...
}catch(Exception e){
out.println("Error - " + e.getMessage());
}


И оно тебе само скажет где чего произошло. правда обработать ее с учетом того, где и какая ошибка произошла конечно сложнее.

p.s. А ты че не спишь? У тебя вроде же ночь должна быть?
Если хочешь, узнать откуда именно ошибка пришла, будь любезен, кидать разные Exception
 

Crazy

Developer
Другая трактовка: если я в один блок try...catch включил несколько функций, кидающих одингаковые исключения, то обычно это значит, что я ЯВНЫМ ОБРАЗОМ заявляю, что мне абсолютно неинтересно, какая из них это кинула.

Было бы интересно -- каждая обрамлялась бы, к примеру, своим блоком.

Другое тривиальное решение:

Код:
int stage = STAGE1;
try {
  myFunc1();
  stage = STAGE2;
  myFunc2();
  stage = STAGE3;
  myFunc3();
}catch(MyException e){
  switch(state) {
     ...
  }
}
 

[VS]

Guest
Автор оригинала: andrew005

Если хочешь, узнать откуда именно ошибка пришла, будь любезен, кидать разные Exception
Не понял, что значит разные, а если одна и та-же функция несколько раз вызывается?
А как быть с уже сущетсвующими java классами которые одни и теже стандартные исключения кидают??
 

[VS]

Guest
Автор оригинала: Crazy
Другое тривиальное решение:
Код:
int stage = STAGE1;
try {
  myFunc1();
  stage = STAGE2;
  myFunc2();
  stage = STAGE3;
  myFunc3();
}catch(MyException e){
  switch(state) {
     ...
  }
}
А теперь обьясни, чем оно лучше (кстати, оно тормознутое довольно будет) чем
Код:
if (myFunc(1) == false) return false;
...
if (obj1.func(2) == false) { addError(obj1.getError()); return false; }
...
return true;
 

andrew005

Guest
Originally posted by [VS]
Не понял, что значит разные, а если одна и та-же функция несколько раз вызывается?
А как быть с уже сущетсвующими java классами которые одни и теже стандартные исключения кидают??
Не понимаю в чем проблемма. Исключения используются для того, чтобы защитить охраняемый блок, от КОНКРЕТНЫХ исключительных ситуаций, где они произошли, imho - не важно. Тут уж наверно отладчик поможет :)
 

andrew005

Guest
Originally posted by [VS]
А теперь обьясни, чем оно лучше (кстати, оно тормознутое довольно будет) чем
Код:
if (myFunc(1) == false) return false;
...
if (obj1.func(2) == false) { addError(obj1.getError()); return false; }
...
return true;
нет гарантии, что ошибка будет обработана
 

[VS]

Guest
Автор оригинала: andrew005

Не понимаю в чем проблемма. Исключения используются для того, чтобы защитить охраняемый блок, от КОНКРЕТНЫХ исключительных ситуаций, где они произошли, imho - не важно. Тут уж наверно отладчик поможет :)
Где они произошли - порой многое меняет. Я предпочитаю каждую функцию отдельно обрабатывать.
 

[VS]

Guest
Автор оригинала: andrew005

нет гарантии, что ошибка будет обработана
А кому нужна эта гарантия?
Точнее - гарантия эта осуществляется написанием грамотного кода проверки - что вернула функция.
Грамотный программист будет проверять - что возвращает функция. Идиоту и на яве принудительные exceptions не помогут.
 

Crazy

Developer
Автор оригинала: [VS]
Точнее - гарантия эта осуществляется написанием грамотного кода проверки - что вернула функция.
Прости, но это из серии "лучше быть богатым и здоровым, чем больным и бедным". Абсолютно истинное утверждение, не имеющее практической пользы. :)

Да, можно тщательно написать код, грамотно проверяя результаты функций. А можно то же время потратить на написания кода с использованием механизма исключений. Поскольку он менее трудоемкий -- есть немалая вероятность,, что результирующий код при равном приложении усилий будет надежнее.

А вот вопрос "а кому нужна эта надежность" лично я обсуждать не буду. Ибо для себя я ответ на него знаю, а убеждать несогласных желания не имею. :)
 

dr.vint

Guest
Спорить и доказывать не буду
но ИМХО Exceptions лучше чем возвращать всякие флажки и lastErrors
 

Crazy

Developer
Автор оригинала: dr.vint
Спорить и доказывать не буду
но ИМХО Exceptions лучше чем возвращать всякие флажки и lastErrors
Маленькое уточнение: согласно моему восприятию проблемы преимущество исключений не является абсолютным. Есть ситуации, когда код с обработкой исключений будет куда более кучеряв. Просто бывает это, IMHO, нечасто. :)
 

[VS]

Guest
Автор оригинала: Crazy

Прости, но это из серии "лучше быть богатым и здоровым, чем больным и бедным". Абсолютно истинное утверждение, не имеющее практической пользы. :)
Это очень реальное утверждение (мое). Я учу студентов писать и вижу что принудительные exceptions в Java реально не "вынуждают" проверять все и вся. Так что все в результате все-равно зависит от программиста.

Да, можно тщательно написать код, грамотно проверяя результаты функций. А можно то же время потратить на написания кода с использованием механизма исключений. Поскольку он менее трудоемкий -- есть немалая вероятность,, что результирующий код при равном приложении усилий будет надежнее.
Елки палки, я подробно обьясняю, почему он более трудоемкий и менее удобный, а ты не хочешь вникнуть.

А вот вопрос "а кому нужна эта надежность" лично я обсуждать не буду. Ибо для себя я ответ на него знаю, а убеждать несогласных желания не имею. :)
Да не надежность это, а просто альтернативный метод обработки ошибок, иногда удобный, иногда - нет.
 
Сверху