import java.util.InputMismatchException;
import java.util.Scanner;
public class Quotient {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
boolean continueInput = true;
do {
try {
System.out.print("Enter an integer: ");
int number = input.nextInt();
System.out.println("The number entered is " + number);
continueInput = false;
}
catch (InputMismatchException ex) {
System.out.println("Try again. (" +
"Incorrect input: an integer is required)");
//************* Discard input
input.nextLine();
//*************
}
} while (continueInput);
}
}
主要理解被注释部分的一行代码
此时遇到异常,是这样的
抛出异常,进行下一次输入
然后删去被注释的那一行
异常时,运行结果是这样的
此时由于没有input.nextLine(),每次读取的还是第一次输入的25.3,不是int型,一直循环抛出异常