-1

我在我的 64 位 Linux 系统上用 Java 编写了这段代码:

    class WrapperClass1
    {
       public static void main(String s [])
       {
            int noinput=s.length;
            System.out.println("Number of values entered is :- " + noinput);
            System.out.println( s[0] + "," + s[1] );
            int x = Integer.parseInt(s[0]);
            int y = Integer.parseInt(s[1]);
            int z = x + y;
            System.out.println(" Sum = " + z);
       }
    };

现在,当我尝试编译它时,它会成功编译,但是当我执行程序时,它会显示一个名为的异常:

           Number of values entered is :- 0
           Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
           at WrapperClass1.main(WrapperClass1.java:7)
4

4 回答 4

0

您没有传递任何导致此问题的参数。

ArrayIndexOutOfBoundsException

抛出以指示已使用非法索引访问数组。索引为负数或大于或等于数组的大小。

在您的情况下,您在执行程序时没有通过。所以它在访问s[0]or时抛出异常s[1]

于 2013-01-14T05:39:00.547 回答
0

您的数组 s 是空的,因此,当您尝试像 s[0] 一样从中弹出项目时,它会抛出此异常,因为那里没有任何内容。

于 2013-01-14T05:41:18.623 回答
0

输入:字符串[]

用什么方法?-->main(String[] args)

什么时候给?--> 当我们说java <className> <input1> <input2> ...执行时

当它抛出ArrayIndexOutOfBoundsException?-->

初始:字符串 s[]

但是在初始化变量(数组)之前,尝试访问不可用的索引...

解决方案:通过命令提供输入(因为这些是命令行参数)

即使没有给出输入,如何避免错误?--> 检查数组的大小,

希望这可以帮助

于 2013-01-14T06:09:24.603 回答
0

您应该考虑使用if语句来检查是否noinput至少为 2。然后您可以自由使用 s[0] 和 s[1] 而不会得到ArrayIndexOutOfBoundsException.

于 2013-01-14T06:10:04.800 回答