想问一下,下面这段代码会无限循环catch中的语句。

while (1>0){

try {

ID1= in.nextInt();

break;

}

catch(Exception e)

{

System.out.println("您输入的不是合法的ID,请重新输入,谢谢");

}

}

我想达到的效果就是,如果输入的不是一个int型,就捕获一个异常并提示用户重新输入,但是实际执行结果是,如果输入了一个错误的id1,就会无限循环catch中的代码,而不会允许再次输入。

慕雪2708375
浏览 1465回答 2
2回答

IT僧

这种简单的判断,其实你可以用if -else判断。捕捉异常占用内存大,用于判断int型,大材小用了。

慕雪2708375

这个问题百度到了,原因是如果不重置Scanner对象sc将会总在while死循环 try catch,原因是Scanner对象发生异常后就不能再被使用,所以一直报异常,编程了死循环.如:
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java