Dies ist schlampig Code. Der tatsächliche Effekt ist einfach return OrExpression();
.
Es gibt eine Ausrede, die ich für Code wie folgt akzeptiere: Es gibt viele andere Methoden wie es, die einem ähnlichen Muster folgen, aber komplexer sind, so dass die nutzlosen Bits hier nicht nutzlos sind. Dies ist jedoch ein extremes Beispiel.
Jedoch gibt es fast keine Entschuldigung für die throw new Error("Missing return statement in function");
. Der Java-Compiler verweigern kompilieren eine Methode, deren Rückgabetyp nicht void
ist und die einen Code-Pfad hat, der das Ende erreicht (nicht return
, throw
, oder geben Sie eine Endlosschleife). Der einzige Grund, dies wäre eine gute Idee, wenn die Absicht war, unvollständigen Code zu kompilieren - dh zur Laufzeit statt zur Kompilierzeit fehlschlagen, so dass andere Teile des Codes verwendet oder getestet werden können - aber selbst dann anwenden zu allen Methoden ist eine schlechte Idee.
Ziemlich umgefallene Möglichkeit, orExpression() zurückzugeben; ' – assylias
ist' throw new Error() 'nicht erreichbar? –
@assylias: Genau das denke ich auch. Ich frage mich nur, warum zum Teufel der Programmierer seinen Code auf diese Weise schreibt? – uthomas