1

代码:

 catch (IOException e) {
        LOGGER.error("IOException exception happened");
        //now need throw again the same exception to be 
                       //catched in    the    upper method
    }

但是当我简单地尝试时:

  catch (IOException e) {
        LOGGER.error("IOException exception happened");
        //now need throw again the same exception to be 
                       //catched in    the    upper method
               throw e;
    }

Eclipse 假设我将“throw e”放在 try catch 块中。但这是无稽之谈。如何解决这个问题?谢谢。

4

3 回答 3

7

由于IOException是已检查异常IOException,因此如果您希望该方法传播,则需要将该方法声明为 throwing 。例如:

void myMethod() throws IOException {
    try {
        //code
    }
    catch(IOException e) {
        LOGGER.error("IOException exception happened");
        throw e;
    }
}
于 2012-06-26T14:46:53.937 回答
5

第二个代码片段很好。请记住,您必须将您的方法声明为:

public void myMethod() throws IOException {
    ...
}
于 2012-06-26T14:47:26.607 回答
1

尝试添加throws IOException到您的方法中,例如:

private void yourMethodName() throws IOException {
    # your method
}

然后 Eclipse 不会要求第二个 try catch 块。

于 2012-06-26T14:48:23.453 回答