2015-06-22 3 views
-4

В ситуации, когда вы не уверены о длине массива, пытающемся прочитать позицию значения из не существующего значения приводит кмассива строк, как преодолеть ArrayIndexOutOfBoundsException

Caused by: java.lang.ArrayIndexOutOfBoundsException: length=x; index=x 

Например в функции импортера первенствовать вы ожидаете 10 столбцов, но файл имеет 9 столбцов, а затем считывает результат 10-го столбца в это исключение.

Каков наилучший способ справиться с таким видом исключения?

+6

проверяя длину массива, прежде чем пытаться получить доступ к индекс ? – Blackbelt

+0

Каждый массив имеет длину. –

+1

Индекс массива начинается с 0. – calvinfly

ответ

3

Прежде всего - индексы массивов начинаются с 0, а не с 1, и если вы получаете 10 столбцов, последний будет с индексом 9. Если вы используете простой массив, вы можете проверить размер это нравится:

String[] members = ["He", "She", "It", "The dog"]; 
int arraySize = members.length; 

Если вы используете ArrayList, вы можете проверить размер массива, как это:

ArrayList<String> myList = new ArrayList<>(); 
int arraySize = myList.size(); 

И тогда вы могли бы сделать для Переберите значения, как это:

for(int i = 0; i< arraySize; i++){ ... } 

или проверить, если ваш текущий индекс в массиве, как это:

//index is a variable with the current index of the element you want 
if(index < arraySize){ ... } //do something 
else ... 

Я надеюсь, что это поможет вам избежать ArrayIndexOutOfBoundsException :)

Смежные вопросы