Присоединяюсь. ИМХО гугль гуава - это маст хэв, отличный костыль с турбонаддувом для такого инвалида как Java.
кэмел кейс в кложуре - а как же православные дэши ?
Я одновременно пишу на F#/C#/жабе/clojure/Delphi и С++, из-за чего меня периодически переклинивает и я путаю стили кода. И пока нет возможности из этого исключить лишние языки.
NumberFormatException
за ловлю голого Exception нужно пальцы дверью зажимать. сначала на ногах, при рецидиве - на руках и вон из профессии :)
за ловлю голого Exception нужно пальцы дверью зажимать. сначала на ногах, при рецидиве - на руках и вон из профессии :)
оцениваю не я один, а вообще-то несколько миллионов программеров
если вы сталкивались когда-нибудь я свой, то могли бы заметить, что практически все из них почему-то не пишут свой класс String / Number / Integer
да что я говорю -- вы же не можете предъявить свой код, который "с нужным" и "не адов"
пиздобольство мне неинтересно
если вы сталкивались когда-нибудь я свой, то могли бы заметить, что практически все из них почему-то не пишут свой класс String / Number / Integer
да что я говорю -- вы же не можете предъявить свой код, который "с нужным" и "не адов"
пиздобольство мне неинтересно
>> Т.е. возвращали бы true+число, либо false, типа как int.TryParse в дотнете.
Note that strings prefixed with ASCII '+' are rejected
велосипеды с квадратом, угу
Note that strings prefixed with ASCII '+' are rejected
велосипеды с квадратом, угу
(type (read-string "1234"))
; java.lang.Long
(type (read-string "aaa1234"))
; clojure.lang.Symbol
(type (read-string "(print 21)"))
; clojure.lang.PersistentList
только хотел сказать, что всё красиво, но
(type (read-string "1234bbb"))
; NumberFormatException Invalid number: 1234bbb clojure.lang.LispReader.readNumber (LispReader.java:258)
; java.lang.Long
(type (read-string "aaa1234"))
; clojure.lang.Symbol
(type (read-string "(print 21)"))
; clojure.lang.PersistentList
только хотел сказать, что всё красиво, но
(type (read-string "1234bbb"))
; NumberFormatException Invalid number: 1234bbb clojure.lang.LispReader.readNumber (LispReader.java:258)
Не гони. Что далеко ходить, работу с датами сам писал или йоду взял? А о кэш для боксовых целых спотыкался? Там всё через жопу.
Ява - это пример того, как хороший язык можно испоганить.
Ява - это пример того, как хороший язык можно испоганить.
оттуда может вылететь 2 исключения. Писать 2 кетча или один общий. Теоретики блин один лучше другого.
Там, где ОЖИДАЕТСЯ некорректный ввод (правильность формата не проверена на ГУИ), должен использоваться NumberFormat. Там есть всё, что душа пожелает для "TryParse"
+100 причём делать его надо как можно ближе места ввода данных криворукими (на ГУИ), чтобы логика приложения уже была чиста от левых чисел в стрингах.
Чож сразу не Throwable???
Эксепшн это дорогая штука для жаба машины. То что вы написали это, несмотря на корректную работу, обычная индусятина.
Эксепшн это дорогая штука для жаба машины. То что вы написали это, несмотря на корректную работу, обычная индусятина.
Про Guava уже всё как надо рассказали. И ещё можно добавить, что в apache commons lang есть math.NumberUtils, который тоже это умеет. И в любой мало-мальский проект эта либа какими-нибудь зависимостями да притянута.
Но вообще проблема системная. Питонисты, например, не умеют без KeyError когда у них ключ в мапе не нашёлся, и ничего, тишина, никто не возмущается.
Но вообще проблема системная. Питонисты, например, не умеют без KeyError когда у них ключ в мапе не нашёлся, и ничего, тишина, никто не возмущается.
Ввести Maybe, написать самому. Делов-то.
Но тут другой нюанс - а на хера париться с джавой?
Но тут другой нюанс - а на хера париться с джавой?
Это не правильный метод, а одно из решений, и не думаю, что самое хорошее.
Охохо, с KeyError в питоне мне пришлось обшарить внутренности питономашины, чтобы доказать упертым линуксоидам что это косяк, а не "так можно".
Это ещё посмотреть где велосипеды с квадратом - в гуаве которая ведёт себя одинаково для JDK 1.6 и 1.7 или в JDK который до 1.7 реджектил строчки с плюсом а потом вдруг решил что оно нормально и можно распарсить.
Тогда, конечно, вопрос - а с чем париться?
Выше уже писали - не смотря на то, что эксепшены для исключительный ситуаций, в данном случае подобное их использование в виде управляющих конструкций навязано отсутствием других вменяемых вариантов.
Ребе. Вот смотрите, решила индустрия вас послушать и наклепала дублирующих функций с кодами возврата. Хомячки обрадовались (это ж не надо теперь эти долбаные исключения обрабатывать) и начали их использовать. А принуждения к верификации кода возврата -- нету! Нету, блять, ващще! Кроме вменяемого тимлида, который будет каждый день проверять выхлоп и все фиксы и тэпэ и тэдэ.
А теперь представьте во что превратятся либы через пару лет. Как вы будете материться на то, что "какого хера оно продолжает\дохнет\подставьте сами без какой либо инфы?".
А теперь представьте во что превратятся либы через пару лет. Как вы будете материться на то, что "какого хера оно продолжает\дохнет\подставьте сами без какой либо инфы?".
Еще вот тут отмечусь. Вот сделали туплом аутпут, ок, облегчили себе жизнь и вместо исключения пользуем дефолтное значение.
Берет юзверь вашу прогу, вводит какую-нибудь шнягу, верную с его точки зрения (можно я не буду придумывать варианты?) А потом несколько дней ебется в поисках решения, хули получается совершенно другое значение на выходе?
Берет юзверь вашу прогу, вводит какую-нибудь шнягу, верную с его точки зрения (можно я не буду придумывать варианты?) А потом несколько дней ебется в поисках решения, хули получается совершенно другое значение на выходе?
Page 4 of 5