Обработка исключений принимает только двоичные входы. Поэтому, когда пользователь вводит «k», например, он скажет «Ошибка! Пожалуйста, введите число!». Однако вместо того, чтобы позволить пользователю повторно вводить ввод, он переходит на следующий вход «Средний импульс». Как я могу заставить его работать, чтобы он оставался на той же линии и позволял повторно ввести значение?Java - Обработка исключений - как повторно ввести недопустимый ввод
// Основной класс
public class Main { //Master class
public static void main(String args[]) //Standard header for main method
{
kbentry input = new kbentry(); //Creates object of kbentry class
System.out.print("\nPlease enter a number for Total Impulse: "); //Print message to enter 1. input
double totalImpulse = input.totalImpulse1(); //Holds the variable entered
System.out.println("You have entered : " + totalImpulse); //Shows the variable entered
System.out.print("\nPlease enter a number for Average Impulse: "); //Print message to enter 2. input
double averageImpulse = input.averageImpulse2(); //Holds the variable entered
System.out.println("You have entered : " + averageImpulse); //Shows the variable entered
}
}
// kbentry класс
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class kbentry{ //Class name
double totalImpulse1(){ //Method for 1. input
BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); //Creates BufferedReader object for System.in
//Total Impulse entry
String strTotalImpulse = null; // These must be initialised
double intTotalImpulse = 0; //Setting it double
try {
strTotalImpulse = in.readLine(); //Reads string value from the keyboard
}
catch (IOException ioe) { // ignore exception
}
try {
intTotalImpulse = Double.parseDouble(strTotalImpulse); // convert it to double
}
catch (NumberFormatException nfe) {
System.out.println("Error! Please enter a number!" + nfe.toString()); //Error message if its not a double
}
return intTotalImpulse; //return value
}
double averageImpulse2(){ //Method for 2. input
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));//Creates BufferedReader object for System.in
// String for AverageImpulse
String strAverageImpulse = null; // These must be initialised
double intAverageImpulse = 0; //Setting it double
try {
strAverageImpulse = in.readLine(); //Reads string value from the keyboard
}
catch (IOException ioe) { // ignore exception
}
// convert it to integer
try {
intAverageImpulse = Double.parseDouble(strAverageImpulse); // convert it to double
}
catch (NumberFormatException nfe) {
System.out.println("Error! Please enter a number!" + nfe.toString()); //Error message if its not a double
}
return intAverageImpulse; //return value
}
}