关于ID输入非整数异常处理问题
while(true){
try{
this.ID=sr1.nextInt();
break;
}
catch(Exception e){
System.out.println("输入错误请重新输入:");
continue;
}
}
这样的话我输入一个字母就会陷入死循环
输入错误请重新输入:
输入错误请重新输入:
输入错误请重新输入:
输入错误请重新输入 :
不停的死循环
但我从网上看了一个解决办法:在catch语句中加了句String a=sr1.next();如下
while(true){
try{
this.ID=sr1.nextInt();
break;
}
catch(Exception e){
System.out.println("输入错误请重新输入:");
String a=sr1.next();
continue;
}
}
这样就搞定了运行结果如下:
这是什么原理?求解