Если написать код подобным образом (приведен ниже), то возникает ошибка при проверке, что метод main не должен пробрасывать исключения. Если же обернуть вызов метода readData() в оболочку try..catch, то возникает ошибка, что метод main нельзя менять. Если же ничего не указывать, то программа не компилируется. Какой выход есть? Я посмотрел скрины кода по подобной задаче и у многих использовалась конструкция try...catch при этом проверка на сайте не ругалась.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
/*
Метод в try..catch
*/
public class Solution {
public static void main(String[] args) throws IOException {
readData();
}
public static void readData() throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<Integer> list = new ArrayList<>();
try {
while (true) {
list.add(Integer.parseInt(reader.readLine()));
}
} catch (NumberFormatException nfe) {
for (int i = 0; i < list.size(); i++)
System.out.println(list.get(i));
}
}
}
package com.javarush.task.task09.task0921;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.io.IOException;
/*
Метод в try..catch
*/
public class Solution {
public static void main(String[] args) {
try
{
readData();
}
catch(IOException io){
io.printStackTrace();
}
}
public static void readData() throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<Integer> list = new ArrayList<>();
try {
while (true) {
list.add(Integer.parseInt(reader.readLine()));
}
} catch (NumberFormatException nfe) {
for (int i = 0; i < list.size(); i++)
System.out.println(list.get(i));
}
}
}