Das erste, was zuerst:
Es ist wirklich an Ihnen zu entscheiden, ob Sie sollten oder nicht throw
Ausnahme und nicht return
ein Fehlercode (oder null
, oder was auch immer).
Soweit ich weiß, gibt es keine großen Probleme beim Auslösen von Ausnahmen anstelle von Fehlern, so weit wie Sie behandeln sie richtig.
Dies führt zu der Frage:
Wann ist richtig eine Ausnahme (oder Fehler bei JS) zu werfen?
Die Frage ziemlich heikel ist, und hier gekennzeichnet und geschlossen als „basierte in erster Linie Meinung“ da dies bis zu persönlicher Meinung vielleicht .. soll
eine ähnliche Frage
.. gut, (na ja ..genau diese Frage) wurde schon gefragt und antwortete
here und ich finde mich mit der akzeptierten Antwort einverstanden, in diesem Kommentar zusammengefasst:
Genau! Eine Ausnahme wird ausgelöst, wenn und nur wenn Funktionsvoraussetzungen (Annahmen über Argumente) gebrochen sind! - @Lightman
In Ihrer Situation, wenn die Annahmen Ihrer Funktion (Ihr erwarteter Parameter) verletzt werden: ja, eine Ausnahme auslösen, da JS bietet kein Syntax-Konstrukt einen Funktionsparameter als required
einzustellen.
Mit ES6 können Sie
default parameters
verwenden so etwas wie das Verhalten zu zwingen, Sie wollen:
function missingParameterHandler() {
throw new Error('Missing parameter');
}
function foo(aRequiredParameter = missingParameterHandler()) {
// Use your required parameter
console.log("Hello " + aRequiredParameter);
}
// Hence:
foo("World") // OK
foo() // -> Throws exception
Beispiel aus here genommen, während here können Sie weitere Beispiele zu dieser Funktion finden.
Dies ist erreichbar, weil, wenn aRequireParameter
nicht übergeben wird, wird der Standardwert zugewiesen (in diesem Fall aufgerufen) und daher wird die Ausnahme/Fehler geworfen werden.
Dies ist alles nach Meinung. Ich neige dazu, solche Überprüfungen nicht einzuschließen, da sie meinen Code verlangsamen, so dass es dem Programmierer überlassen bleibt, seine Funktionen korrekt aufzurufen. Alternativ können Sie eine statisch typisierte Sprache wie [TypeScript] (http://www.typescriptlang.org/) verwenden, die sicherstellt, dass Funktionen immer mit der richtigen Anzahl von Argumenten aufgerufen werden. –
@ raiti13 wenn einige der Antworten Ihnen geholfen haben, bitte akzeptieren Sie es, um zukünftigen Benutzern zu helfen :) – FredMaggiowski