Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

JAVA, IOEXception во время BufferedReader Как исправить?

Дмитрий Гидлевский Знаток (338), закрыт 4 года назад
У меня метод, который должен считать числа.

public static int[] getInts() {
int[] s = new int[10];
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
for ( int i = 0; i < s.length-1; i++ ) {
s[i] = Integer.parseInt(reader.readLine());
}
return s;
}

Их я хочу передать массиву.
int[] intino = getInts();

НО readLine подчеркивается из-за IOException
https://i.imgur.com/WbpbV0e.png
Если я напишу throws Throwable
то уже int[] intino = getInts(); будет выдавать ошибку.
Как это исправить? И выполнить мою задачу - передать введенные числа через метод в массив, используя BufferedReader .
Лучший ответ
Евгений Фомин Мудрец (14312) 4 года назад
Вот это
s[i] = Integer.parseInt(reader.readLine());
Оберни в try-catch блок:

try {
s[i] = Integer.parseInt(reader.readLine());
} catch (IOException e) {
e.printStackTrace();
}

Можешь весь цикл обернуть.
И да, почитай про обработку исключений в Java
Дмитрий ГидлевскийЗнаток (338) 4 года назад
Благодарю
Остальные ответы
Александр Искусственный Интеллект (309529) 4 года назад
а зачем throws Throwable ?
вы же сами пишете что "из-за IOException"
оборачивать надо в try...catch либо делать так чтоб ваш метод выбрасывал такое исключение... но тогда вызывающий метод будет это ловить и решать...

и почему у вас в цикле вот такое?
s.length-1;
вы не собираетесь вводить все 10 элементов?
АлександрИскусственный Интеллект (309529) 4 года назад
это IOException исключение конечно же нужно ловить, даже если в твоём случае оно маловероятно... это равно что у тебя джава сдохла и программа продолжает работать

** что будет если ввести НЕ номер?
** что будет если ввести несколько номеров разделённых пробелом или каким-нибудь ещё разделителем?
** важно ли тебе выбить из пользователя заполнение всех 10 элементов массива?
Похожие вопросы