是什么导致java.lang.ArrayIndexOutOfBoundsException以及如何防止它?

ArrayIndexOutOfBoundsException是什么意思?如何消除它

以下是触发异常的代码示例:

String[]name={“汤姆”、“鲍勃”、“哈利”};
对于(int i=0;i<=names.length;i++){
System.out.println(名称[i]);
}

您的第一个调用端口应该是文档合理清晰地解释了这一点:

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

例如:

int[]数组=新的int[5];
int boom=阵列[10];//抛出异常

至于如何避免它。。。嗯,别那么做。小心使用数组索引

人们有时遇到的一个问题是认为数组是单索引的,例如

int[]数组=新的int[5];
// ... 在这里填充数组。。。
对于(int index=1;index<=array.length;index++)
{
System.out.println(数组[索引]);
}

这将丢失第一个元素(索引0),并在索引为5时引发异常。这里的有效索引包括0-4。这里正确的、惯用的for语句应该是:

for(int index=0;index<array.length;index++)

(当然,这是假设您需要索引。如果您可以使用增强的for循环,请这样做。)

发表评论