想问一下,下面这段代码会无限循环catch中的语句。
while (1>0){
try {
ID1= in.nextInt();
break;
}
catch(Exception e)
{
System.out.println("您输入的不是合法的ID,请重新输入,谢谢");
}
}
我想达到的效果就是,如果输入的不是一个int型,就捕获一个异常并提示用户重新输入,但是实际执行结果是,如果输入了一个错误的id1,就会无限循环catch中的代码,而不会允许再次输入。 |
免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。
版权声明:作者保留权利,不代表天盟立场。
|
|
|
|
这种简单的判断,其实你可以用if -else判断。捕捉异常占用内存大,用于判断int型,大材小用了。 |
|
|
|
|
这个问题百度到了,原因是如果不重置Scanner对象sc将会总在while死循环 try catch,原因是Scanner对象发生异常后就不能再被使用,所以一直报异常,编程了死循环.如: |
|
|
|
|