JDK 6以下では、以下のようにtry-finallyブロックを含む多くのコードスニペットが見られました。Java try - finally design
private void doSomething() throws IOException {
FileReader reader = null;
try {
reader = new FileReader("someFile");
.....
} finally {
if(reader != null){
reader.close();
}
}
}
なぜ、リーダーをnullに初期化してtryブロックに割り当てるのですか?私は何かが不足している場合は、テンプレートより良いだろうか?私の理由は...私たちは最終的にブロックでヌルチェックを避け、リーダーが初期化に失敗した場合、私は他の何かをする必要はありません。
そうでもありません!コンストラクタが例外をスローすると、メソッドの残りの部分は何もしません。 throws節を参照してください。 – Stackee007