黑马程序员技术交流社区
标题:
Scanner的一个小问题
[打印本页]
作者:
不可言
时间:
2014-6-19 20:55
标题:
Scanner的一个小问题
本帖最后由 不可言 于 2014-6-20 12:46 编辑
public static void main(String[] args) throws IOException
{
Scanner sc = new Scanner(System.in);
while(true){
try{
int num = sc.nextInt(); //抛出异常后,就会循环执行catch里面的代码,
break;
}catch(InputMismatchException e){
//当蒱获异常
System.out.println("Error\t"+e.getMessage());
}
}
}
复制代码
1.PNG
(55.59 KB, 下载次数: 9)
下载附件
2014-6-19 20:57 上传
作者:
不可言
时间:
2014-6-19 20:59
为什么会出现这样的情况,如何解决?(46)
作者:
人心如水
时间:
2014-6-19 21:28
你这是死循环啊,会一直循环,直到内存空间没地方了才会停止,而且你这里没有异常啊,catch抓不到异常为null
作者:
lucky_man
时间:
2014-6-19 21:32
用Scanner也有异常吗?没有见过,来学习下
作者:
wangkerui
时间:
2014-6-19 21:34
表示没看懂!
作者:
≥﹏≤我还太年
时间:
2014-6-19 21:36
while(true)一直循环catch内容,你给catch代码块最后也加个break
作者:
wuguiye
时间:
2014-6-19 21:42
你应该把while(ture)放在try 里面 ,你那样的话一接一个非整型的数据就会发生异常,执行不到break语句,所以一直循环
作者:
轩辕冰晨
时间:
2014-6-19 22:02
楼上的正解,不过你已经抛了异常怎么还去捕获啊
作者:
w440149517
时间:
2014-6-19 22:03
对,这是死循环,你可以把true条件该一改
作者:
华子
时间:
2014-6-19 23:02
这有什么不懂啊 ,catch捕获异常然后,在while(true)里面循环啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2