[VS]
Guest
Зря ты. Без обратной совместимости нельзя. Практически нигде.Автор оригинала: webdeveloper
вот поэтому РНР так и остается детской игрушкой![]()
если бы они хоть немного думали о том что они делают. а так ощущение что это какая то вечная бета![]()
Зря ты. Без обратной совместимости нельзя. Практически нигде.Автор оригинала: webdeveloper
вот поэтому РНР так и остается детской игрушкой![]()
если бы они хоть немного думали о том что они делают. а так ощущение что это какая то вечная бета![]()
Я на С++ почти совсем не писал. Я его очень плохо знаю. А на джаве мне это понравилось. Вроде ничего так получалось.Автор оригинала: [VS]
На С++ иногда их использую, но есть более красивые и стабильные подходы к обработке ошибок. На Java приходится их использовать из-за идеологии языка, это порой очень не удобно.
А по поводу тормозов - они нигде скорости не прибавляют, быстро их реализовать довольно проблематично.
Я наверное те так выразился. то что они оставили обратную совместимость это то как раз хорошо. Плохо то что теперь они придумали новый вид конструкторов. Зачем только? Что нельзя былдо сдедлать деструктор вида __className() ? или уже так ~className()?Автор оригинала: [VS]
Зря ты. Без обратной совместимости нельзя. Практически нигде.
Мне не понравилось то что они ввели новый вид конструкторов. Это значит что старые скоро станут не действительными и рано или поздно придется все переделывать. Видимо буду вообще без них писать.Автор оригинала: tony2001
извини, я не понимаю подобных рассуждений.
разговор о том, что надо развиваться постепенно, поддерживая хотя бы часть не очень старого кода.
и ничего плохого или удивительного я не вижу в цитате, которую ты привел.
я не думаю, что было бы лучше заставить всех срочно переписать все свои скрипты ("а мог бы и полоснуть!...").
Это зависит от того, что считать за аргумент.или только утверждать ?
тогда давай аргументы.

Тем что если в блок try/catch помещать несколько вызовов функций, то не знаешь откуда именно пришла ошибка, другими словами для грамотной обработки обычно приходится писать try/catch чуть-ли не вокруг каждого вызова функции. После этого не понятно, зачем вообще нужно try/catch когда можно просто возвращать true/false из функции, и устанавливать в обьекте класса функции флаги с описанием ошибки.Автор оригинала: webdeveloper
Я на С++ почти совсем не писал. Я его очень плохо знаю. А на джаве мне это понравилось. Вроде ничего так получалось.
А чем именно он тебе не нравятся? Вроде все так стройненько там получается?
А вот ты о чем. Опять таки не знаю как в С++ а в джаве можно сделать такАвтор оригинала: [VS]
Тем что если в блок try/catch помещать несколько вызовов функций, то не знаешь откуда именно пришла ошибка, другими словами для грамотной обработки обычно приходится писать try/catch чуть-ли не вокруг каждого вызова функции. После этого не понятно, зачем вообще нужно try/catch когда можно просто возвращать true/false из функции, и устанавливать в обьекте класса функции флаги с описанием ошибки.
Дык по другому в яве и не сделаешь, там единственный вариант обработки исключений. В станрартном варианте в С++ точно также.Автор оригинала: webdeveloper
А вот ты о чем. Опять таки не знаю как в С++ а в джаве можно сделать так
try{
...
}catch(Exception e){
out.println("Error - " + e.getMessage());
}
Ну если у тебя несколько функций из одного блока try/catch могут один и тот-же exception выкинуть, как ты узнаешь, какая из них его выкинула?И оно тебе само скажет где чего произошло. правда обработать ее с учетом того, где и какая ошибка произошла конечно сложнее.
Я вообще сплю в "weird times"p.s. А ты че не спишь? У тебя вроде же ночь должна быть?
и вообще завтра на месяц покидаю интернет ... vacation, marriage, etc. 
Если хочешь, узнать откуда именно ошибка пришла, будь любезен, кидать разные ExceptionOriginally posted by webdeveloper
А вот ты о чем. Опять таки не знаю как в С++ а в джаве можно сделать так
try{
...
}catch(Exception e){
out.println("Error - " + e.getMessage());
}
И оно тебе само скажет где чего произошло. правда обработать ее с учетом того, где и какая ошибка произошла конечно сложнее.
p.s. А ты че не спишь? У тебя вроде же ночь должна быть?
int stage = STAGE1;
try {
myFunc1();
stage = STAGE2;
myFunc2();
stage = STAGE3;
myFunc3();
}catch(MyException e){
switch(state) {
...
}
}
Не понял, что значит разные, а если одна и та-же функция несколько раз вызывается?Автор оригинала: andrew005
Если хочешь, узнать откуда именно ошибка пришла, будь любезен, кидать разные Exception
А теперь обьясни, чем оно лучше (кстати, оно тормознутое довольно будет) чемАвтор оригинала: 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;
Не понимаю в чем проблемма. Исключения используются для того, чтобы защитить охраняемый блок, от КОНКРЕТНЫХ исключительных ситуаций, где они произошли, imho - не важно. Тут уж наверно отладчик поможетOriginally posted by [VS]
Не понял, что значит разные, а если одна и та-же функция несколько раз вызывается?
А как быть с уже сущетсвующими java классами которые одни и теже стандартные исключения кидают??

нет гарантии, что ошибка будет обработанаOriginally posted by [VS]
А теперь обьясни, чем оно лучше (кстати, оно тормознутое довольно будет) чем
Код:if (myFunc(1) == false) return false; ... if (obj1.func(2) == false) { addError(obj1.getError()); return false; } ... return true;
Где они произошли - порой многое меняет. Я предпочитаю каждую функцию отдельно обрабатывать.Автор оригинала: andrew005
Не понимаю в чем проблемма. Исключения используются для того, чтобы защитить охраняемый блок, от КОНКРЕТНЫХ исключительных ситуаций, где они произошли, imho - не важно. Тут уж наверно отладчик поможет![]()
А кому нужна эта гарантия?Автор оригинала: andrew005
нет гарантии, что ошибка будет обработана
Кода меньше. Код яснее.Автор оригинала: [VS]
А теперь обьясни, чем оно лучше
Прости, но это из серии "лучше быть богатым и здоровым, чем больным и бедным". Абсолютно истинное утверждение, не имеющее практической пользы.Автор оригинала: [VS]
Точнее - гарантия эта осуществляется написанием грамотного кода проверки - что вернула функция.


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

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