У меня проблема с попыткой использования try/catch в моем коде. Всякий раз, когда я пытаюсь вернуть результат; я получаю сообщение об ошибке "не может разрешить результат символа". Вот мой код.
public Object remove(int index) {
try{
Object result = this.get(index);
for (int k = index; k < size-1; k++) items[k] = items[k + 1];
items[size] = null;
size--;
return result;
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("Exception occurred in 'remove' method.");
return result;
}
}
Вы определили переменную результата в блоке try. если вы объявите переменную в {}
скобках, тогда эта переменная будет доступна для использования только в этих фигурных скобках, и она не будет доступна для внешнего мира.
Поэтому, чтобы решить проблему, вы делаете что-то вроде:
Object result = null;
try {
....
} catch ... {
}
return result;
result
инициализируется внутри блока try. Блоки try/catch работают аналогично if/else, поскольку вы не можете видеть объект, инициализированный в другом блоке. Вы можете обойти это, инициализируя result
перед try
.
public Object remove(int index) {
Object result;
try{
result = this.get(index);
for (int k = index; k < size-1; k++) items[k] = items[k + 1];
items[size] = null;
size--;
return result;
}
catch(ArrayIndexOutOfBoundsException e){
System.out.println("Exception occurred in 'remove' method.");
return result;
}
}
Вероятно, вам не нужно было вообще исключать исключение из пределов. Исходные items
- это массив, вы можете использовать items.length
в своем цикле for, чтобы предварительно выходить за пределы.