1

私は今日、このようなコードを持っている小さな問題に遭遇しました。それは私を少し不快にさせました...

   try{
       //stuff...
   } finally {
       //finally stuff
   }

このような実装は、で例外が発生し、tryそれを処理する呼び出し元に再スローされるという点で優れた方法であるかどうか疑問に思います。これは以下のコードと同等ですか?

    try{
        //code....
    } catch (Exception e) {
        //handling...
    } finally {
        //finishing up
    }
4

2 に答える 2

2

正確ではありませんが、ないtry/finallyブロックcatchは次と同等です

try {
    // ...
} catch (Exception e) {
    throw;
} finally {
    // finishing up
}

例外を処理せずに再スローするだけです。catchこれが意図したものである場合、ブロックを省略することは良いことです。コードの可読性が向上します。

于 2013-05-15T18:30:51.327 に答える