我在尝试在代码中使用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;
}
}
答案 0 :(得分:1)
您已在try块中定义了结果变量。如果你在{}
括号内声明变量,那么该变量只能在这些大括号内使用,并且它不会被外界使用。
因此,要解决此问题,请执行以下操作:
Object result = null;
try {
....
} catch ... {
}
return result;
答案 1 :(得分:0)
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
是一个数组,您可以在for循环中使用items.length
来超越边界。