Страница 1 из 3

Знатоки Джава - ау!

Добавлено: 28 май 2010, 11:13
Stanislav
Сейчас есть вот такой код:

Код: Выделить всё

                Socket outSock = null;
                try {
                    // that runs on the port 1600
                    // create the socket on Baker
                    outSock = new Socket("baker2.alphatrade.com",1600);
                } catch(Exception e) {
                    out.println("<p align=center><font color=lime size=4> There was an error connecting to Alphatrade's authorize service on baker2.alphatrade.com:1600. Please contact Robert G. Jakabosky <br>");
                    out.println(e+"</font></p>");
                }
Надо вот так:

Код: Выделить всё

                Socket outSock = null;
                try {
                    // that runs on the port 1600
                    // create the socket on Baker
                    outSock = new Socket("baker2.alphatrade.com",1600);
                } catch(Exception e1) {
                    try {
                        // create the socket on Rainier
                        outSock = new Socket("rainier2.alphatrade.com",1600);
                    } catch(Exception e2) {
                        out.println("<p align=center><font color=lime size=4> There was an error connecting to Alphatrade's authorize service on baker2.alphatrade.com:1600 and rainier2.alphatrade.com:1600. Please contact SysAdmin <br>");
                        out.println(e+"</font></p>");
                    {
                }
Как бы это по-красивее написать?

Re: Знатоки Джава - ау!

Добавлено: 28 май 2010, 11:50
aissp
ужос :)

Код: Выделить всё

bool func("dns_name") {
bool ret = false;
try{"connect nah" ret = true;}
catch{ ret = false;}
return ret;}
все таки почти всегда исключения зло

Re: Знатоки Джава - ау!

Добавлено: 28 май 2010, 14:07
Stanislav
Да, забыл сказать - этот весь код - jsp.

Re: Знатоки Джава - ау!

Добавлено: 28 май 2010, 14:16
Marmot
Stanislav писал(а):Да, забыл сказать - этот весь код - jsp.
Тогда и так сойдет...

PS Уходи оттуда, не жильцы они, с таким-то подходом...

Re: Знатоки Джава - ау!

Добавлено: 28 май 2010, 14:27
Stanislav
Marmot писал(а):
Stanislav писал(а):Да, забыл сказать - этот весь код - jsp.
Тогда и так сойдет...
PS Уходи оттуда, не жильцы они, с таким-то подходом...
Да я все пишу, пишу... Даже в Викторию пишу... Но тщетно... :(

Re: Знатоки Джава - ау!

Добавлено: 28 май 2010, 22:52
buba
Stanislav писал(а):Сейчас есть вот такой код:

[/code]

Как бы это по-красивее написать?
Избавтесь от try/catch brackets. И вообще что это за программирование на error path? Malformed!

Re: Знатоки Джава - ау!

Добавлено: 29 май 2010, 08:02
Marmot
buba писал(а): Избавтесь от try/catch brackets. И вообще что это за программирование на error path?
А как надо?

Re: Знатоки Джава - ау!

Добавлено: 02 июн 2010, 01:25
buba
Marmot писал(а):
buba писал(а): Избавтесь от try/catch brackets. И вообще что это за программирование на error path?
А как надо?
К сожалению стиль этот (на исключениях) популярен и в С++. И все бы ничего да вот семантика подкачала. Ошибка это не исключение или если быть точнее это специальный класс ошибок. К тому же термин этот коррелируется с существующей терминологией в компютерной архитектуре.
Что касается кода то в данном случае это всего лишь возможный сценарий успешного соединения (смотри выше) следователно, не очень уместно всовывать это в try{}catch.
Короче не так важно все это для Java и C#. Просто выглядет тупо хотя и будет работать.

Re: Знатоки Джава - ау!

Добавлено: 02 июн 2010, 06:41
Stanislav
buba писал(а):
Marmot писал(а):
buba писал(а): Избавтесь от try/catch brackets. И вообще что это за программирование на error path?
А как надо?
К сожалению стиль этот (на исключениях) популярен и в С++. И все бы ничего да вот семантика подкачала. Ошибка это не исключение или если быть точнее это специальный класс ошибок. К тому же термин этот коррелируется с существующей терминологией в компютерной архитектуре.
Что касается кода то в данном случае это всего лишь возможный сценарий успешного соединения (смотри выше) следователно, не очень уместно всовывать это в try{}catch.
Короче не так важно все это для Java и C#. Просто выглядет тупо хотя и будет работать.
Ну так вы напишите как надо :D А то слов много умных - я ничего не понял... :(

Re: Знатоки Джава - ау!

Добавлено: 02 июн 2010, 07:14
Правильные пацаны
Stanislav писал(а): Ну так вы напишите как надо :D А то слов много умных - я ничего не понял... :(
эксепшен - нормально в джаве.
Токо это - правильные пацаны ставят наверху один обработчик ошибок и там все ловят и печатают ошибки.
Форматировать вывод внутри каждой ошибки - (no offence) - читать тут:
http://lurkmore.ru/%D0%91%D1%8B%D0%B4%D ... 0%B5%D1%80

если ловить все наверху (бросать специальный эксепшен с кодом ошибки), можно и i18n сделать.

Хотя правильные пацаны пользуются фреймворками, которые "оберегают мозг хомячка" (с) и все i18n делают сами

Re: Знатоки Джава - ау!

Добавлено: 02 июн 2010, 08:13
Stanislav
Правильные пацаны писал(а):
Stanislav писал(а): Ну так вы напишите как надо :D А то слов много умных - я ничего не понял... :(
эксепшен - нормально в джаве.
Токо это - правильные пацаны ставят наверху один обработчик ошибок и там все ловят и печатают ошибки.
Форматировать вывод внутри каждой ошибки - (no offence) - читать тут:
http://lurkmore.ru/%D0%91%D1%8B%D0%B4%D ... 0%B5%D1%80

если ловить все наверху (бросать специальный эксепшен с кодом ошибки), можно и i18n сделать.

Хотя правильные пацаны пользуются фреймворками, которые "оберегают мозг хомячка" (с) и все i18n делают сами
Я не программер - я сисадмин, джаву я уже почти не помню, но мне надо быстро пофиксить платежный интерфейс, чтобы освободить старый сервак от сервисов и заюзать его на что-нить хорошее. Попутно хотелось бы добавить некую отказоустойнчивость - посему забабахал два гейтвея к платежной системе на двух серваках. Потому и написал сюда, может есть какой-то стандартный выворот на такой случай. Наверху я поставить ничего не могу - это jsp.
Но на самом деле - похоже вообще жопа - есть еще одна платежная джава приблуда - для массового чарджа клиентов - запускается ежедневно кроном, исходняков не могу найти нигде... :(

Re: Знатоки Джава - ау!

Добавлено: 02 июн 2010, 09:15
Marmot
Stanislav писал(а): Но на самом деле - похоже вообще жопа - есть еще одна платежная джава приблуда - для массового чарджа клиентов - запускается ежедневно кроном, исходняков не могу найти нигде... :(
И неужели в этом тоже виноват программист?

Re: Знатоки Джава - ау!

Добавлено: 02 июн 2010, 09:17
Marmot
buba писал(а): Короче не так важно все это для Java и C#. Просто выглядет тупо хотя и будет работать.
Я не понял, слив засчитывать или как?

Re: Знатоки Джава - ау!

Добавлено: 02 июн 2010, 12:00
aissp
Граждане :)
(1) операция коннект достаточно редкое явление, перформанс тут нах не нужна, нужно чтобы код понятен был
(2) Насколько я знаю в жаве в с шарпе ето общий способо ловить все ошибки да же те которые ими не являются
(3) отсутвие коннекта на сервер ощибкой вобщем то не является, скорее штатная ситуация

исходя из етого я и упокавал все ето в функцию, чтобы наружу н еторчала и не было вложенных try catch которые плохо читаются и еще хуже спопровождаются, поскольку имееет тенденцию перетекать на дргугой екран (если на один). вобщем то и все :)

Критика принимается, так как в етих языках я полупрофан :)

Re: Знатоки Джава - ау!

Добавлено: 02 июн 2010, 12:17
Marmot
aissp писал(а):
Критика принимается, так как в етих языках я полупрофан :)
С этого надо было начинать, ты всей жопности ситуации не просек: "этот весь код - jsp" :)
Я продолжаю настаивать на своем решении, что и так сойдет и рвать оттуда когти как можно быстрее... :evil: :twisted: