2016-10-24 7 views
1
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; 
    } 
} 

私は上記のコードが最終的に返されるので、悪い習慣とみなすことができます。 バイトコード情報に基づいて、最終的には突然戻らず、最後に値が設定されません。どのようにこれは悪いとみなされますか?Javaで最後に表示されたビュー

+4

ここで「最終的に」のポイントは何ですか?キャッチ後の状態を返すことができます。 – AntoineB

答えて

4

ポイントは次のとおりです。finallyステートメントは単純に意味がありません。それはあなたのコードにの値を加えます。このバージョン:

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

はまったく同じです。あなたが考えることを開始せずに:それは何ですか最終的にのために良い?

つまり、の機能にもハングアップしないでください。 可読性を忘れてしまいます。あなたは、できるだけ早く何が起こっているのかを理解したいと思っています。 を最後に使用しては確かに "脳cpu"スピンを "難しい"スピンにするでしょう...あなたがそれを読んでから、それを消化して解決する必要があるからです。

もちろん、これは非常に微妙です。しかし、最終的には、微妙なものでいっぱいになっているファイルは、少しはっきりしているかもしれません...それでも、読まなければならないよりもはるかにファイルを構成しています!

最後に:私を間違ってはいけません。最終ブロックから戻ってくることが意味をなさない場合があります。しかし、 - そのブロック内で他のことが起こったとき(つまり、実際にはには、とにかくそれがブロックされている必要があります)。

関連する問題