metaclass: (дзедline)
metaclass ([personal profile] metaclass) wrote2013-03-21 11:25 am
Entry tags:

java try parse integer

А почему в java нету готовых методов, которые бы позволяли парсить числа, не кидая исключений?
Т.е. возвращали бы true+число, либо false, типа как int.TryParse в дотнете.

[identity profile] zmila.livejournal.com 2013-03-21 02:44 pm (UTC)(link)
NumberFormatException

за ловлю голого Exception нужно пальцы дверью зажимать. сначала на ногах, при рецидиве - на руках и вон из профессии :)

[identity profile] andrew kondratovich (from livejournal.com) 2013-03-21 03:11 pm (UTC)(link)
оттуда может вылететь 2 исключения. Писать 2 кетча или один общий. Теоретики блин один лучше другого.

[identity profile] sergiej.livejournal.com 2013-03-21 03:52 pm (UTC)(link)
Чож сразу не Throwable???
Эксепшн это дорогая штука для жаба машины. То что вы написали это, несмотря на корректную работу, обычная индусятина.

[identity profile] andrew kondratovich (from livejournal.com) 2013-03-22 06:58 am (UTC)(link)
Выше уже писали - не смотря на то, что эксепшены для исключительный ситуаций, в данном случае подобное их использование в виде управляющих конструкций навязано отсутствием других вменяемых вариантов.

[identity profile] sergiej.livejournal.com 2013-03-23 05:39 pm (UTC)(link)
Никак не оправдано. В данном случае надо проверить, правильный ли номер, а не парсить, поэтому надо использовать NumberFormat в месте возникновения сомнительного стринга-интежера.
Про сами эксепшны вопрос, скорее, академический. Вот пример, у вас пользователь вводит логин и пароль. Факт ввода неправильного пароля это эксепшн?
К вашему коду претензия другого плана. Что толку от вашего возвращения некого дефолта? Вам в месте вызова этой функции надо проставлять этот дефолт, обрабатывать потом результат, не пришёл ли дефолт. Не говоря о том, что в таком случае парсинг самого дефолта невозможен. Всё это в совокупности - индусятина. Лучше уж сразу в месте вызова ловить эксепшн и обрабатывать.