| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > StrToInt????? |
| Автор: Riki_tiki_tavi 20.4.2005, 18:23 |
| Доброго времени суток всем! Вот, нужда заставляет меня и начать писать на яве. Естественно и возникают такие дурацкие вопросы: как преобразовать String в int, есть ли стандартные функции или писать свою? Помогите пожалуйста |
| Автор: Domestic Cat 20.4.2005, 18:33 | ||
|
| Автор: Riki_tiki_tavi 20.4.2005, 18:40 |
| точно, спасибо, странно, я не посмотрел в Integer, а мне почему то казалось что это должно было быть в String'е... Ладно, все равно извините за дурацкий вопрос, с кем не бывает |
| Автор: AntonSaburov 20.4.2005, 19:16 | ||
Какие проблемы - заходи и спрашивай. Мы для этого и существуем. |
| Автор: Guest 26.4.2005, 14:41 | ||
Лучше так:
|
| Автор: batigoal 26.4.2005, 14:46 |
| Ну так и было предложено выше, только без подробностей. |
| Автор: Stampede 26.4.2005, 20:39 | ||
Ничего не лучше. Программерам, которые втихушку "глотают" эксепшены, надо просто отрывать руки. Это на самом деле огромниый топик сам по себе, но в двух словах дело обстоит так. Преобразовывать строку в число приходится в основном при обработке входных данных, источником которых может быть что угодно: девайс, другая программа, юзерский ввод и т. д. Если строка содержит вместо ожидаемого числа всякие кракозябры, на это надо немедленно реагировать! При этом любая вменяемая программа должна сделать как минимум две вещи: занести в лог запись об ошибке и вывести сообщение пользователю. Чего многие не понимают, это что это два совершенно разных типа сообщений. В логи нужно занести как можно больше полезной информации для скорейшего отлова и фиксения (если это баг). А юзеру нужно выдать теплое человеческое сообщение о том, что случился кирдык и, если это ошибка ввода, вежливо попросить ввести данные заново. В противном случае попросить связаться со службой поддержки, не забыв указать референс намбер ошибки. Так вот, в случае с исходным вариантом (без ловли эксепшена), если что случись, исключение пойдет вверх по стеку вызовов и есть шанс что рано или поздно наткнется на блок, который знает, что с ним делать. А так, как ты написал - ноль-то он присвоит, да вот аукнуться это может совершенно в другом месте программы, которое отстоит от твоего кода километров на десять. И ищи его свищи. А ты говоришь |
| Автор: Domestic Cat 26.4.2005, 21:23 |
| Ну устроили из-за трай-кетча На форуме чаще всего выкладывается сырой код, потому что просто времени нет ловить все иксепшны, наводить красоту и т п. На конкретный вопрос дается конкретный ответ. |
| Автор: Stampede 26.4.2005, 22:07 | ||
Дык, кто устроил-то? Ты вот просто дал код, коротко и по теме. И тут приходит какой-то [beep] с бугра - ни имени, ни отчества, и с порога заявляет, что вот так вот будет лучше. А ведь этот топик может и незамутненному неофиту на глаза попасться, и уверует человек, что и вправду так лучше. Не будет так лучше, товарищ Гуест. Почему - тебе объяснили. Хочешь поспорить - валяй, только будь добр зарегистрируйся сначала. А то такое чувство, что с привидением разговариваешь |
| Автор: Domestic Cat 26.4.2005, 22:14 |
| Верно говоришь |
| Автор: Fantasist 26.4.2005, 23:05 | ||
Ну. Ну. Вполне возможно, что логика программы отвечает такому решению. Мы ведь не знаем. |
| Автор: Stampede 27.4.2005, 00:19 | ||||
Не спорю! Очень даже может такое быть! Только не надо предлагать это в качестве безусловно "более лучшего" решения, не потрудившись даже обозначить границы применимости.
Тоже верно. Как верно и то, что существуют все-таки фундаментальные принципы и общие guidelines. Прошу заметить, я ведь не проповедовал какой-то конкретный подход, типа там fine-grained app exceptions или раннее/позднее ловление или exception wrapping или еще что-нибудь - это все как раз application-specific и up to the implementation. А вот то, что я сказал по поводу отдельных задач логирования и выдачи пользовательских сообщений - это, пожалуй, наменьший общий знаменатель, который можно подвести под большинство стратегий обрабртки ошибок. |
| Автор: Zandr 27.4.2005, 06:16 | ||
[off]
Сильно [/off] |
| Автор: Fantasist 27.4.2005, 09:59 | ||
| Stampede Гм... А совсем по-русски уже не получается.
Согласен. Я имел в виду, что начинать разговор о правильности обработки ошибок в треде StrToInt как бы... слегка не к месту. |