Java - Try / catch方法问题

时间:2015-03-28 15:32:25

标签: java methods try-catch

我在尝试在代码中使用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;
    }
}

2 个答案:

答案 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来超越边界。