Java程序中出现Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:0是怎么回事

程序可以通过编译,但运行时出现“Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:0 at Sum.main(Sum.java:6)”,敬请高手指教。
附源程序:
public class Sum
{
public static void main(String args[])
{
int n=Integer.parseInt(args[0]);
int sum=0;
int i=1;
while (i <= n)
{
sum = sum + i;
i = i + 1;
}
System.out.println("n="+n+" sum="+sum);
}
}

在运行的时候要加上参数,像这样:

java Sum 5

args[0]就是取第一个参数,因运行的时候没有参数所以会把索引越界异常。

for(int i=0;i<=av.length;i++) 这里应该改成 for(int i=0;i<av.length;i++) , av数组长度本来只有av.length, i 索引是从0开始的,所以最zhuan后的索引应该是av.length - 1,即不能到达索引为av.length处。

扩展资料:

从类 java.lang.Throwable 继承的方法

fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString

从类 java.lang.Object 继承的方法

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

构造方法详细信息

publicArray IndexOutOfBoundsException()构造不带详细消息的

publicArrayIndexOutOfBoundsException(int index)用指示非法索引的参数构造新的ArrayIndexOutOfBoundsException类。

参考资料来源:百度百科-ArrayIndexOutOfBoundsExce

温馨提示:内容为网友见解,仅供参考
第1个回答  2006-11-09
java.lang.ArrayIndexOutOfBoundsException:0 at Sum.main(Sum.java:6)是告诉你数组越界了。
运行这个程序必须要用命令行向它传个参数。
int n=Integer.parseInt(args[0]);
如果你没有传参数,则args数组的大小是0, 而你要访问他的第一个元素,所以越界了。
第2个回答  推荐于2018-04-06
你是怎么运行的,在运行的时候要加上参数,像下面这样
java Sum 5

args[0]就是取第一个参数,因你运行的时候没有参数所以会把索引越界异常。本回答被提问者和网友采纳
第3个回答  2006-11-10
运行的时候这样java Sum 1
int n=Integer.parseInt(args[0]);
如果你没有传参数,则args数组的大小是0, 而你要访问他的第一个元素,所以越界了。

...main" java.lang.ArrayIndexOutOfBoundsException:0是怎么回事_百度...
java Sum 5 args[0]就是取第一个参数,因运行的时候没有参数所以会把索引越界异常。for(int i=0;i<=av.length;i++) 这里应该改成 for(int i=0;i<av.length;i++) , av数组长度本来只有av.length, i 索引是从0开始的,所以最zhuan后的索引应该是av.length - 1,即不能到达索引为av....

...main" java.lang.ArrayIndexOutOfBoundsException: 0
你好,你这个错误提示里指向的是第四行,String Path = args[2];所以我认为不是代码出错,而你的运行时,带参执行的参数数量不够 你是这样的运行的吗?java Operatefile C:\\ 1.txt C:\\1.txt,至少要三个参数fileAndPath、FileNewName、Path ...

...main" java.lang.ArrayIndexOutOfBoundsException: 0 at Factorial...
运行的时候,你要输入:java Factorial 4 这样的命令,然后回车。第三个参数,就是你要求factorial的数。

...main" java.lang.ArrayIndexOutOfBoundsException: 0程序出错_百度...
如果你调用a[2]那么就会抛这个异常

java 异常Exception
java中的异常多了,但是常见的异常也就如下几种:import java.nio.*;import java.util.*;class TestException { public static void main(String[] args) { TestException t = new TestException();t.testIndexOutOfBoundsException();} \/\/ 1。ArithmeticException异常。 被除数为0时触发 public ...

java中throws有什么用,就算不写throws,一样是可以向调用方法的方法抛出...
ArrayIndexOutOfBoundsException这个异常属于runtimeException运行时异常,这种异常是可预料的,可避免的,没有特殊需求一般不用try catch处理jvm会自动报错,只不过不抛出程序就会停止运行,但其实遇到这种错误后程序继续运行也没有意义了,你可以试一下IOExcepetion这种非运行时异常,要么立刻用try catch处理掉,...

...main" java.lang.ArrayIndexOutOfBoundsException:0是怎么回事_百度...
java Sum 5 args[0]就是取第一个参数,因运行的时候没有参数所以会把索引越界异常。for(int i=0;i<=av.length;i++) 这里应该改成 for(int i=0;i<av.length;i++) , av数组长度本来只有av.length, i 索引是从0开始的,所以最zhuan后的索引应该是av.length - 1,即不能到达索引为av....

相似回答