2013-02-10 7 views
-1

Я работаю над домашним заданием списка массива в Java , но я получаю эту ошибку ArrayIndexOutOfBoundsException в методе получения value()ArrayIndexOutOfBoundsException Ошибка Java

public int getValue() throws DSException { 
     //returns the value of current position 
     //throw exception when there are no elements in the list 
     if (listArray.length == 0){ 
      throw new DSException(); 
     } 
     return listArray[curr]; 
} 
+4

Итак ... что такое 'curr'? – Makoto

+1

Проблема в том, что 'curr' больше или равно, чем' listArray.length'. В следующий раз используйте отладчик, чтобы это увидеть. –

+0

curr = текущая позиция массива и его -1, когда список равен 0 – Envix

ответ

0

Вы должны проверить, если curr действительно, нет, если длина есть != 0.

Он должен выглядеть следующим образом:

public int getValue() throws DSException { 
     //returns the value of current position 
     //throw exception when there are no elements in the list or less than 'curr' 
     if (listArray.length <= curr){ 
       throw new DSException(); 
     } 
     return listArray[curr]; 
} 
1

проверить параметр «ТОК», сравнить его с listArray.length

0

единственное место, где вы можете получить эту ошибку является: return listArray[curr]

попробуйте это

return listArray.length-1?listArray[curr]:"whatever you want" 
Смежные вопросы