Я хочу, чтобы пользователь мог ввести в два междунар после неправильного ввода. Я попробовал продолжить; в блоке catch, но он только запустил ошибки во время выполнения. Я просто хочу, чтобы он вернулся к вершине основного метода после выброса ошибки. Посмотрите, как на рис. Он не позволял пользователю вводить какие-либо цифры. Я хочу исправить эту часть.
Вот код. Это только для практики.
/**
practing exceptions, example 1 in book for exceptions
*/
import java.util.Scanner;
public class PracticeExceptions extends Exception {
public static void main(String[] args)
{
String response = "y";
Scanner keyboard = new Scanner(System.in);
do{
int n1, n2;
double r;
System.out.println("Please enter two numbers");
try{
n1 = keyboard.nextInt();
n2 = keyboard.nextInt();
r = (double) n1/n2;
System.out.format("Your answer: %.2f %n", r);
}catch(Exception a){
System.out.println("Invaild input please try again");
}
System.out.println("Again (y/n)");
response = keyboard.next();
}while(response.equalsIgnoreCase("y"));
}
}
Поймать и игнорировать любые исключения, это очень плохая практика. Просто используйте 'if' –
Не уверен, что вы имеете в виду, это просто для практики для java более низкого уровня. Может быть, не самое лучшее, но я только узнал ограниченное количество java. Итак, это только для практического использования. – MoneyMonster
@MonkeyMonster Я имею в виду вместо использования try-catch, используйте 'if'. Вы ожидаете, что пользователь предоставит вам недопустимое значение (n2 = 0). Try-catch должен использоваться для исключений, которые не зависят от пользователя. Вы можете сделать то же самое с 'if (n2 == 0) {isValid = false;}' –