Метод в try..catch

  • 6
  • Недоступна
Вероятно, каждый из вас хотя бы раз в жизни ошибался при вводе пароля или других текстов. Давайте защитим программу от случайного ввода «не тех» данных. В задачке пользователь вводит с клавиатуры числа, а если он введёт что-то другое, то должен сработать метод, перехватывающий исключение, и вывести на экран все ранее введенные числа.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (288)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Dmitriy Sugak Team Lead в Luxoft
14 января, 14:40
Как всегда "радует" задание: 5. Если пользователь ввел текст, а не число, программа должна вывести все ранее введенные числа. ГДЕ здесь написано КАК их выводить? Рекомендации от Ментора - это по ходу куски не дописанного текста) Проверь, что после ввода текста, программа выводит все ранее введенные числа, каждое с новой строки сохраняя порядок ввода.
Jill Still 16 уровень, Москва
5 января, 13:46
А кто знает, почему возникает IOException, который тоже надо ловить? Идея подчеркивает reader.readLine()
Aleksey Grin 10 уровень, Санкт-Петербург
14 января, 16:11
Да, потому что содержимое reader'a у тебя в конце концов заканчивается и это тоже эксепшн и его тоже нужно обрабатывать. но ты наверняка уже тоже знатно проматерился когда решил через импорт IOException и посмотрел, "верное решение"...
Имя Фамилия 13 уровень, Москва
18 декабря 2020, 17:24
Дольше всего промучался воспоминая как через foreach в консоль выводить.. вкинул нечто странное "for (Object num : list) { System.out.println(num); }" и валидатор молча зохавал )) с остальным проблем не возникло - таки выдресировали меня трайкетчами (сеты-мапы конечно же из головы выветрились уже, но вот аррай повторили)
PaiMei in J# 14 уровень, Санкт-Петербург
8 декабря 2020, 11:06
Коллеги, вопрос слегка не по теме, просто уже давно терзаю себя смутными сомнениями, изначально, еще в тот самый момент, как проходили считывание данных с клавиатуры, я приучил себя к BufferedReader, очень часто сталкиваюсь в комментариях, да и в инете при поисках сторонней информации зачастую вылазит Scanner, а как оно на самом деле? (Что там за забором?) Что используют в реальной жизни и какие основные преимущества / недостатки той или иной системы? ЗЫ За дополнительную ссылку на статью +100500 к карме автоматом))
Артем 12 уровень, Киев
29 декабря 2020, 14:33
Наверное, я запоздал со ссылкой, но, может, понадобится кому-нибудь в будущем: ссылка
baddan 15 уровень, Тамбов
8 января, 07:32
по улице ездят машины разных марок и все они тебя уверенно везут из пункта А а пункт В. как они работат знать не обязательно важен результат чёрной коробки. Возможно readBuffer както проще обрабатывать во время проверки заданий. либо он дает больше понимание как работает система. Scanner прячет IOException, в то время как BufferedReader немедленно бросает его. В одной из первых лекций было сказанно про оба метода. В жизне заказчику совершенно не важно как работает чёрная коробка. его интересует только результат. Но суть это не меняет оба метода вводят данные.
Настя 13 уровень
8 декабря 2020, 11:06
Решила с 3й попытки, но по невнимательности выводила на консоль в блоке catch исключение. А так, задачка очень простая) Знание ArrayList'ов, BufferedReader'а, циклов и try-catch-finally - и все получится :)
Виктор 16 уровень
8 декабря 2020, 11:01
Решил сразу. Сравнил с решением JR. Удивился. Засунуть в catch вывод результата!? хм… по-моему это дурной тон. Для этого есть finally. Делал через него.
Антон 16 уровень, Москва
28 ноября 2020, 21:18
Смутило условие: "Код внутри readData обернуть в try..catch." Исходя из этого можно предположить, что весь код в readData должен находиться внутри try..catch, но это невозможно, т.к. объявление ArrayList должно быть снаружи. По факту, readData должен содержать блок try..catch, но блок охватывает не весь код внутри метода. Результат вывел в catch и без использования finally, валидатор принял с первого раза.
Maksim Gorshtein 10 уровень, Ашкелон
28 ноября 2020, 10:47
Смутил изначально список импортов. Для чего создавать массив, которые может быть бесконечным (до ввода строки)? Зачем расходовать память? Можно сразу в цикле считывать числа и тут же их выводить на печать, освобождая память всего-лишь одной переменной. И только тогда, когда мы встречаем строку кидать исключение...Вот и все!!!
Алексей 22 уровень, Ivanovo
25 ноября 2020, 09:30
думаю, что либо валидатор неверно настроен, либо что то недорассказали в лекции: try - читает reader и вносит числа в list catch - ловит ошибку // и казалось бы должен вывести list если уж поймал исключение, но валидатор не принимает такой вариант finally - вот здесь вывод list принимает
Николай Селиверстов 15 уровень, Москва
13 ноября 2020, 22:01
Что бы прога не просила throws указывать ловим просто Exception e.