public class ceshi {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int a;
System.out.print("请输入一个整数:");
while(true)
{
try
{
a = scan.nextInt();
break;
} catch (Exception e) {
System.out.println("输入了不合法的整数,请重新输入:");
}
}
System.out.println("你输入的整数为:" + a);
}
}
缓存问题,缓存区的内容并没有被读取出来
直接导致了下一次循环 nextInt() 直接读取了缓存中的非法整数,再次触发异常被捕获,由此导致死循环。