/ /最終的にJavaでのビュー[複製]-java、try-catch、finally

最終的にJavaでのビュー[複製] - java、try-catch、finally

 public boolean sendDeviceEvent() {
boolean status = false;
try {
device.sendEvent("blah...blah");
status = true;
} catch (Exception e) {
log.error("Failed to send NodeLowBattery Event - {} {}", createNodeLowBatteryNotification(), e.getCause());
} finally {
return status;
}
}

上記のコードがどのようになるかを知りたい最終的に返されるので、悪い習慣と見なされます。 バイトコード情報に基づいて、最終的に突然返されず、最終的に値が設定されません。これはどのように悪いと考えられますか?

回答:

回答№1は4

要点は、finallyステートメントが単に意味をなさないということです。 いいえ あなたのコードに何でも。このバージョン:

try {
...
return true;
} catch (...) {
log ...
}
return false;

同じことを行います。考えさせずに:それは何ですか 最後に 良い?

言い換えれば、「あまりにもハングアップしないでください」 機能性;そして忘れる 読みやすさ。何が起こっているのかをできるだけ早く理解したいと考えています。を使用して 最後に 間違いなくあなたの「頭脳CPU」を「より難しく」回します...あなたがそれを読まなければならないという理由だけで、それから「ああ、実際私はそれを必要としない」と消化して解決します。

もちろん、これは非常に微妙です。しかし、最終的には、少し明確になる可能性のある微妙なものでいっぱいのファイル...それでも、本来あるべきファイルよりもはるかに読みにくいファイルになります!

最後に:誤解しないでください:finallyブロックから戻ることが理にかなっている場合があります。しかし-そのブロックで他のことが起こった場合のみ リアル とにかくそれを最終的にブロックする必要があります)。