Baseline Widely available
Die cause
Dateneigenschaft einer Error
-Instanz gibt den spezifischen ursprünglichen Grund des Fehlers an.
Sie wird verwendet, wenn ein Fehler abgefangen und mit einer spezifischeren oder nützlicheren Fehlermeldung erneut ausgelöst wird, um dennoch Zugriff auf den ursprünglichen Fehler zu haben.
WertDer Wert, der dem Error()
-Konstruktor im options.cause
-Argument übergeben wurde. Er ist möglicherweise nicht vorhanden.
Der Wert von cause
kann jeden Typ haben. Sie sollten nicht davon ausgehen, dass der von Ihnen abgefangene Fehler ein Error
als cause
hat, ebenso wie Sie nicht sicher sein können, dass die im catch
-Statement gebundene Variable ein Error
ist. Das Beispiel âBereitstellung strukturierter Daten als Fehlerursacheâ unten zeigt einen Fall, in dem absichtlich kein Fehler als Ursache angegeben wird.
Es ist manchmal nützlich, einen Fehler abzufangen und ihn mit einer neuen Nachricht erneut auszulösen. In diesem Fall sollten Sie den ursprünglichen Fehler in den Konstruktor des neuen Error
übergeben, wie gezeigt.
try {
connectToDatabase();
} catch (err) {
throw new Error("Connecting to database failed.", { cause: err });
}
Für ein detaillierteres Beispiel siehe Error > Differenzierung zwischen ähnlichen Fehlern.
Strukturierte Daten als Fehlerursache bereitstellenFehlermeldungen, die für Menschen geschrieben sind, können für die maschinelle Analyse ungeeignet sein â da sie umformuliert oder geändert werden können, was bestehende Analysen, die sie verwenden, beeinträchtigen könnte. Wenn Sie einen Fehler von einer Funktion werfen, können Sie als Alternative zu einer lesbaren Fehlermeldung die Ursache als strukturierte Daten für die maschinelle Verarbeitung bereitstellen.
function makeRSA(p, q) {
if (!Number.isInteger(p) || !Number.isInteger(q)) {
throw new Error("RSA key generation requires integer inputs.", {
cause: { code: "NonInteger", values: [p, q] },
});
}
if (!areCoprime(p, q)) {
throw new Error("RSA key generation requires two co-prime integers.", {
cause: { code: "NonCoprime", values: [p, q] },
});
}
// rsa algorithmâ¦
}
Spezifikationen Browser-Kompatibilität Siehe auch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4