Wenn dies ein API-Aufruf ist, in der Regel, Sie wollen den Ball Teil für die Verbraucher zu retten, und nicht intern behandeln.
... oder handhaben die convert-to-JSON intern Teil, aber wenn es das Laden-Fehler sind, oder Konvertierungsfehler, lassen Sie die Außenwelt mit den oops leben.
Hier ist was ich meine; wir Versprechen für eine zweite Überspringen:
function getData() {
var data = null;
try {
data = getSomeData();
} catch (e) { } // ignore it
return data;
}
var data = getData();
var name = data.property.name; // BOOM
Wenn es werfen geht, sollten Sie es fangen (es wäre besser, wenn sie nicht werfen, aber besser zu wissen, dass es zu werfen, geht als nicht kennt).
function getData() {
var data = getSomeData();
return data;
}
var data;
var name;
try {
data = getData();
name = data.property.name;
} catch (e) { /* now at the right level */ }
Werfen im Allgemeinen ist natürlich nicht großartig. Es ist auch nicht null, abhängig von Ihrer Einstellung zur funktionalen Programmierung.
Wenn wir aus diesem einen Anruf, dass ein Versprechen zurück:
function getData() {
return callServer()
.then(response => JSON.parse(response));
}
getData()
.then(showData)
.catch(showError);
Wenn diese Fehler innerhalb behandelt wurden, wäre es nie zu dem Endbenutzer macht es die Tatsache zu handhaben, dass ihr Material fehlt. Wenn Sie null zurückgegeben haben, müssten sie alle Arten von null
-Prüfungen innerhalb ihrer then()
machen.
Der zweite sieht schöner aus –