2010-10-16 84 views
1

当我的程序抛出异常时,我得到的返回值为7.究竟是7是什么意思,我在哪里可以得到这些返回值的列表?或者那只是它发生的第一行(尽管我有一次-1)?JAVA:对于ArrayIndexOutOfBoundsException异常,返回值意味着什么?

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7 
    at DataReader.get(DataReader.java:74) 
    at Employees.<init>(Employees.java:48) 
    at Main.main(Main.java:7) 

回答

5

这是您试图检索的数组索引。

您的应用程序代码尝试引用超出数组限制。这可能是由大于数组大小的索引引起的,也可能是由于您的第一个异常指示了传入负索引。

在存在潜在风险的数组访问之前检查这些条件,或者至少将它包装在try-catch块中,以便可以恢复并继续前进。

+0

很酷。谢谢!我知道我在阵列边界之外,但我不知道那显示了我试图访问的不存在的项目。 :D太糟糕了,并没有说在javadoc中。 – trusktr 2010-10-16 18:15:20

+0

实际上,如果没有详细讨论,实际上至少要提到它:“[例外]抛出ArrayIndexOutOfBoundsException [is]来指示数组已被非法索引访问。索引为负数或大于或等于阵列的大小“。 http://download.oracle.com/javase/1.4.2/docs/api/java/lang/ArrayIndexOutOfBoundsException.html – 2010-10-16 18:36:53

7

该号码是您尝试使用的号码作为get调用的参数。这不是错误代码。

+0

你怎么知道我正在使用致电?你有没有读过我的其他问题之一? hehe – trusktr 2010-10-16 18:16:54

+3

stacktrace的第一行告诉:'在DataReader.get(DataReader.java:74)'。 – BalusC 2010-10-16 18:27:18