基本的java相关问题

时间:2014-07-28 17:22:05

标签: java exception io stack-trace

我已经开始体验到今天这个前所未有的特殊问题

我的程序在某个点之后停止接受输入并异常终止

这是摘录:

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()的

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:0)

我相信是nextInt()来电,因为它不会消耗回程线...添加额外的nextLine()(不必将其分配给任何东西)

同样如@cdhowie所述,nextInt()必须使用Integer值作为第六个输入。

答案 1 :(得分:0)

nextInt()内的异常表明问题在于输入 - 程序被输入五行后跟一些不是整数的东西。

检查异常类型应该可以帮助您确定。你应该收到InputMismatchException(读取不是整数的东西)或NoSuchElementException(没有更多的输入要读取)。