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

Все, что вы хотели знать о программизме, но боялись спросить.
Аватара пользователя
Stanislav
Mr. Minority Report
Сообщения: 45335
Зарегистрирован: 19 окт 2005, 16:33
Откуда: Moscow - Richmond - New Wesт - Burnaby - PoCo

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

Сообщение 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>");
                    {
                }
Как бы это по-красивее написать?
Аватара пользователя
aissp
Маньяк
Сообщения: 2710
Зарегистрирован: 07 ноя 2005, 09:51

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

Сообщение aissp »

ужос :)

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

bool func("dns_name") {
bool ret = false;
try{"connect nah" ret = true;}
catch{ ret = false;}
return ret;}
все таки почти всегда исключения зло
Аватара пользователя
Stanislav
Mr. Minority Report
Сообщения: 45335
Зарегистрирован: 19 окт 2005, 16:33
Откуда: Moscow - Richmond - New Wesт - Burnaby - PoCo

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

Сообщение Stanislav »

Да, забыл сказать - этот весь код - jsp.
Аватара пользователя
Marmot
Графоман
Сообщения: 39293
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

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

Сообщение Marmot »

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

PS Уходи оттуда, не жильцы они, с таким-то подходом...
Аватара пользователя
Stanislav
Mr. Minority Report
Сообщения: 45335
Зарегистрирован: 19 окт 2005, 16:33
Откуда: Moscow - Richmond - New Wesт - Burnaby - PoCo

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

Сообщение Stanislav »

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

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

Сообщение buba »

Stanislav писал(а):Сейчас есть вот такой код:

[/code]

Как бы это по-красивее написать?
Избавтесь от try/catch brackets. И вообще что это за программирование на error path? Malformed!
Аватара пользователя
Marmot
Графоман
Сообщения: 39293
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

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

Сообщение Marmot »

buba писал(а): Избавтесь от try/catch brackets. И вообще что это за программирование на error path?
А как надо?
buba
Пользователь
Сообщения: 95
Зарегистрирован: 09 май 2010, 13:49

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

Сообщение buba »

Marmot писал(а):
buba писал(а): Избавтесь от try/catch brackets. И вообще что это за программирование на error path?
А как надо?
К сожалению стиль этот (на исключениях) популярен и в С++. И все бы ничего да вот семантика подкачала. Ошибка это не исключение или если быть точнее это специальный класс ошибок. К тому же термин этот коррелируется с существующей терминологией в компютерной архитектуре.
Что касается кода то в данном случае это всего лишь возможный сценарий успешного соединения (смотри выше) следователно, не очень уместно всовывать это в try{}catch.
Короче не так важно все это для Java и C#. Просто выглядет тупо хотя и будет работать.
Аватара пользователя
Stanislav
Mr. Minority Report
Сообщения: 45335
Зарегистрирован: 19 окт 2005, 16:33
Откуда: Moscow - Richmond - New Wesт - Burnaby - PoCo

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

Сообщение Stanislav »

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

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

Сообщение Правильные пацаны »

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

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

Хотя правильные пацаны пользуются фреймворками, которые "оберегают мозг хомячка" (с) и все i18n делают сами
Аватара пользователя
Stanislav
Mr. Minority Report
Сообщения: 45335
Зарегистрирован: 19 окт 2005, 16:33
Откуда: Moscow - Richmond - New Wesт - Burnaby - PoCo

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

Сообщение Stanislav »

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

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

Хотя правильные пацаны пользуются фреймворками, которые "оберегают мозг хомячка" (с) и все i18n делают сами
Я не программер - я сисадмин, джаву я уже почти не помню, но мне надо быстро пофиксить платежный интерфейс, чтобы освободить старый сервак от сервисов и заюзать его на что-нить хорошее. Попутно хотелось бы добавить некую отказоустойнчивость - посему забабахал два гейтвея к платежной системе на двух серваках. Потому и написал сюда, может есть какой-то стандартный выворот на такой случай. Наверху я поставить ничего не могу - это jsp.
Но на самом деле - похоже вообще жопа - есть еще одна платежная джава приблуда - для массового чарджа клиентов - запускается ежедневно кроном, исходняков не могу найти нигде... :(
Аватара пользователя
Marmot
Графоман
Сообщения: 39293
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

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

Сообщение Marmot »

Stanislav писал(а): Но на самом деле - похоже вообще жопа - есть еще одна платежная джава приблуда - для массового чарджа клиентов - запускается ежедневно кроном, исходняков не могу найти нигде... :(
И неужели в этом тоже виноват программист?
Аватара пользователя
Marmot
Графоман
Сообщения: 39293
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

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

Сообщение Marmot »

buba писал(а): Короче не так важно все это для Java и C#. Просто выглядет тупо хотя и будет работать.
Я не понял, слив засчитывать или как?
Аватара пользователя
aissp
Маньяк
Сообщения: 2710
Зарегистрирован: 07 ноя 2005, 09:51

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

Сообщение aissp »

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

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

Критика принимается, так как в етих языках я полупрофан :)
Аватара пользователя
Marmot
Графоман
Сообщения: 39293
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

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

Сообщение Marmot »

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