为什么这个代码在我输入值的时候会抛出一个异常,如果使用它的话它会在里面。如果里面试着抓住while循环里面的内容NoSuchElementException
异常消息:在线程
异常 “主要” java.util.NoSuchElementException
我的代码:
while (true) {
try {
Scanner in = new Scanner(System.in);
int choose = in.nextInt();
in.close();
if (choose == 1 || choose == 2 || choose == 3) {
return choose;
}
else
{
System.out.println("else text");
}
} catch (InputMismatchException e) {
System.out.println("exception text");
}
大概是因为它从'in'中读取的下一个标记不是'int'。没有更多的信息就无法说出来。 (我认为这将是空格,但'扫描仪'文档说空格是默认的分隔符,所以大概不会是这样的......) – 2014-09-20 10:34:59
*“...当我输入值更多然后它是内部如果用过。“*咦? – 2014-09-20 10:37:39
@ T.J.Crowder我认为当输入不是1,2和3时,我在http://ideone.com/4lRySS运行他的代码,你可以去那里测试它。他是对的,我不知道为什么? – Lrrr 2014-09-20 10:43:32