Ich habe den Verdacht, dass ich den finally
Block falsch bin mit, und dass ich nicht verstehen, die Grundlagen ihres Zweckes ...Javascript Fehler bei Versuch Umgang .. fangen .. endlich
function myFunc() {
try {
if (true) {
throw "An error";
}
} catch (e) {
alert (e);
return false;
} finally {
return true;
}
}
Diese Funktion führt den catch
-Block aus, alarmiert "Ein Fehler", gibt dann aber true zurück. Warum kehrt es nicht falsch zurück?
Die Verwendung eines einzelnen Rückgabewerts ist eine gültige und nützliche Strategie zur Lösung des Problems der Vereinfachung der Absicht und der Klarheit der Funktionen. Die Verwendung einer Variablen zum Speichern des Rückgabewerts ist ebenfalls ein gültiges Mittel zum Lösen einer komplizierten Rückgabewertlogik. Ich glaube jedoch nicht, dass man sagen kann, dass mehrfache Rückgabeanweisungen in einer Funktion automatisch Zeichen einer schlechten Programmierpraxis sind. In vielen Fällen ist es einfach in Ordnung: einfacher im Schreiben des Codes und klar in der Übertragung der Absicht der Funktion zu dem nächsten Programmierer, der es verstehen muss. 'function a (i) {if (i === undefiniert) {return;} ...}' – ErikE
Diese Return-Anweisung oben ist sehr klar. Das Erzwingen der gesamten Funktion innerhalb eines if-Blocks ist nicht notwendig. – ErikE