我必须捕获3个异常并循环,直到输入有效的输入。
现在,我的程序在输入有效输入时结束,但只是连续循环无效输入。它永远不会捕获异常。如果我取出循环并输入一个“m”,它会捕获算术异常,但会打印输入不匹配“仅数字”的错误消息
// Get input from user and perform integer divsion.
do{
try{
System.out.print("Please enter a positive value for the numerator: ");
numerator = keyboard.nextInt();
System.out.print("Please enter a positive value for the denominator: ");
denominator = keyboard.nextInt();
}
catch(InputMismatchException e){
System.out.println("Enter only numbers.");
}
catch(NegativeValueException e){
System.out.println("no negative values.");
}
catch(ArithmeticException e){
System.out.println("Division by zero.");
}
if (numerator >=0 && denominator >= 0){
quotient = numerator / denominator;
}else if(numerator<0 && denominator <0){
throw new NegativeValueException();
}else
invalidInput = true;
System.out.println();
System.out.print("The result of integer division is: ");
System.out.println(quotient);
System.out.println();
}while (invalidInput);
我只需要捕获异常并让它打印出异常和循环的相应错误消息,直到输入有效输入。如果没有循环,它将捕获负值,但不会打印错误并以构建失败结束。任何帮助将不胜感激!
料青山看我应如是
慕尼黑8549860
HUX布斯
相关分类