为什么我的Java程序中出现“ArrayIndexoutofBound”错误?

时间:2014-10-06 13:25:54

标签: java exception workflow indexoutofboundsexception value-of

需要了解以下程序的流程。 输出应该是什么? 当我编译这个程序时,我得到“ArrayIndexoutofBound”错误。

public class test {

   public static void main(String args[]) { 

      Integer intObj=Integer.valueOf(args[args.length-1]);
      int i = intObj.intValue();

      if(args.length > 1) 
         System.out.println(i);
      if(args.length > 0)
         System.out.println(i - 1);
      else 
         System.out.println(i - 2);
   }
}

2 个答案:

答案 0 :(得分:0)

“ArrayIndexoutofBound”:抛出此异常表示已使用非法索引访问数组。索引为负数或大于或等于数组的大小。

所以可能你没有传递任何命令行参数。所以args.Lenght返回0。

所以这里:

Integer intObj=Integer.valueOf(args[0-1]);

索引是负面的,这就是为什么JVM抛出“ArrayIndexoutofBound”

答案 1 :(得分:0)

添加一些输入检查是否在Integer.valueOf之前存在某些输入(args [args.length-1]);并将一些输入信息添加到执行中。