2016-10-24 4 views
1

Ich würde gerne wissen, wie der obige Code als schlechte Praxis betrachtet werden kann, da es von endlich zurückkommt. Basierend auf der Byte-Code-Information kehrt schließlich nicht abrupt zurück und es werden schließlich keine Werte gesetzt. Wie kann dies als schlecht angesehen werden?Ansichten auf schließlich in Java

+4

Was ist der Punkt von "endlich" hier? Sie können einfach den Status nach dem Fang zurückgeben. – AntoineB

Antwort

4

Der springende Punkt ist: dass die Aussage schließlich keinen Sinn ergibt. Es fügt Ihrem Code keinen Wert hinzu. Diese Version:

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

macht das gleiche; ohne dass Sie anfangen zu denken: Was ist das endlich gut für?

Mit anderen Worten: nicht zu hängen auf Funktionalität; und vergessen Sie Lesbarkeit. Sie wollen so schnell wie möglich verstehen, was vor sich geht. Mit schließlich wird definitiv Ihre "Gehirn-CPU" drehen "härter" ... nur weil Sie es lesen müssen, und dann verdauen und zu "ah, eigentlich brauche ich das überhaupt nicht".

Natürlich ist das sehr subtil; Aber am Ende: Eine Datei voller subtiler Dinge, die ein wenig klarer sein könnte ... macht eine Datei noch schwerer lesbar, als sie sein sollte!

Schließlich: Verstehen Sie mich nicht falsch: Es könnte Situationen geben, in denen die Rückkehr aus dem endgültigen Block sinnvoll sein könnte. Aber - nur wenn andere Dinge in diesem Block passieren (was bedeutet, dass es eine echte muss, die schließlich trotzdem blockieren).

Verwandte Themen