Программа должна прочитать файл, добавить значение и вывести среднее значение. Тем не менее, в случае ошибки, вызванной неправильным типом данных (например, «23 24 82 f 13 5»), он должен использовать try и catch, чтобы предотвратить сбой программы и отобразить пользователю сообщение типа «Ошибка! Неверные данные». тип найден в файле. Система читает: f. " Я попытался найти на YouTube эту конкретную проблему, а также скопировал то, что делал в последнем задании. Я на самом деле не знаю ключевое слово для этой проблемы, поэтому пока не повезло.
Ниже приведен код одного из моих классов:
/**Method to sum numbers inside file with exception in case the system reads something other than numerical value*/
public double getSum() {
try{
while(sc.hasNext()) {
sum = sum + sc.nextDouble();
System.out.print("Sum is: " + sum);
}
}catch(IllegalDataRead e) {
throw new IllegalDataRead("Can't add value! System reads: ", sc.nextByte());
}
return sum;
}
Ниже будет приведен конструктор для класс пользовательских исключений:
/**Constructor for wrong data type read*/
public IllegalDataRead(String message, byte b) {
super(message + " " + b);
}
Вот моя консоль:
Введите имя файла или каталог, в котором находится файл: Numbers.txt Сумма: 34.0 Исключение в потоке "main" java .util.InputMismatchException: невозможно добавить значение! at lab05.Number.getSum (Number. java: 34) на lab05.MainClass.main (MainClass. java: 23) Сумма равна: 68.0 Сумма равна: 122.0 Сумма равна: 136.0 Сумма равна: 168.0Сумма: 192.0