我已经开始体验到今天这个前所未有的特殊问题
我的程序在某个点之后停止接受输入并异常终止
这是摘录:
public static void main(String[] args) {
try
{
Scanner sc=new Scanner(System.in);
String a=sc.nextLine();
String b=sc.nextLine();
String c=sc.nextLine();
String d=sc.nextLine();
String e=sc.nextLine();
int f=sc.nextInt();
for(int i=0;i<3;i++)
{
System.out.printf("%s,%s,%s%n3",a,b,c);
}
// TODO, add your application code
System.out.println("Hello World!");
}catch (Exception cause) {
StackTraceElement elements[] = cause.getStackTrace();
for (int i = 0, n = elements.length; i < n; i++) {
System.err.println(elements[i].getFileName()
+ ":" + elements[i].getLineNumber()
+ ">> "
+ elements[i].getMethodName() + "()");
}
}
我试图访问上面的堆栈跟踪信息,以找出我的jdk或其他可能导致此问题的软件出了什么问题
这是上述代码生成的输出
Scanner.java:864>> throwFor()
Scanner.java:1485>>下一个()
Scanner.java:2117>> nextInt()
Scanner.java:2076>> nextInt()
pester.java:21>> main()的
任何帮助将不胜感激
答案 0 :(得分:0)
我相信是nextInt()
来电,因为它不会消耗回程线...添加额外的nextLine()
(不必将其分配给任何东西)
同样如@cdhowie所述,nextInt()必须使用Integer值作为第六个输入。
答案 1 :(得分:0)
nextInt()
内的异常表明问题在于输入 - 程序被输入五行后跟一些不是整数的东西。
检查异常类型应该可以帮助您确定。你应该收到InputMismatchException
(读取不是整数的东西)或NoSuchElementException
(没有更多的输入要读取)。