【发布时间】:2014-11-30 18:31:16
【问题描述】:
需要了解后续程序的流程。 输出应该是什么? 当我编译这个程序时,我得到了“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);
}
}
【问题讨论】:
-
很容易看出这是怎么发生的:如果你没有命令行参数,args 数组就没有任何值。
-
你输入的是command-line arguments吗?如果你没有任何异常,你会得到那个异常。
-
根据错误和代码,我认为您必须提供至少 1 个命令行参数。 ArrayIndexOutOfBounds 发生在您未能做到这一点时。当您提供一个程序后,该程序应该可以正常运行。
-
一个空数组的长度为 0,
args[-1]未定义。 -
如果我在没有任何命令行参数的情况下传递 args[],那么默认情况下数组值的大小将为 0 ??
标签: java exception workflow indexoutofboundsexception value-of