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は、trycatchブロックに「throwe」を入れると想定しています。しかし、これはナンセンスです。この問題をどのように修正しますか?ありがとう。

4

3 に答える 3

7

IOExceptionchecked exceptionであるため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

2 番目のコード フラグメントは問題ありません。メソッドを次のように宣言する必要があることを覚えておいてください。

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

throws IOExceptionメソッドに追加してみてください。

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

その後、Eclipse は 2 番目の try catch ブロックを要求しません。

于 2012-06-26T14:48:23.453 に答える