Error() Konstruktor
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Der Error() Konstruktor erzeugt Error Objekte.
Syntax
new Error()
new Error(message)
new Error(message, options)
new Error(message, fileName)
new Error(message, fileName, lineNumber)
Error()
Error(message)
Error(message, options)
Error(message, fileName)
Error(message, fileName, lineNumber)
Hinweis:
Error() kann mit oder ohne new aufgerufen werden. Beide erzeugen eine neue Error Instanz.
Parameter
messageOptional-
Eine menschenlesbare Beschreibung des Fehlers.
optionsOptional-
Ein Objekt, das folgende Eigenschaften enthält:
causeOptional-
Ein Wert, der die spezifische Ursache des Fehlers angibt, wie in der
causeEigenschaft widergespiegelt. Wenn ein Fehler abgefangen und mit einer spezifischeren oder nützlicheren Fehlermeldung erneut ausgelöst wird, kann diese Eigenschaft verwendet werden, um den ursprünglichen Fehler zu übergeben.
fileNameOptional-
Der Pfad zur Datei, die diesen Fehler ausgelöst hat, wie in der
fileNameEigenschaft widergespiegelt. Standardmäßig der Name der Datei, die denError()Konstruktor aufgerufen hat. lineNumberOptional-
Die Zeilennummer in der Datei, bei der der Fehler aufgetreten ist, wie in der
lineNumberEigenschaft widergespiegelt. Standardmäßig die Zeilennummer, die denError()Konstruktoraufruf enthält.
Beispiele
>Funktionsaufruf oder Konstruktion mit new
Wenn Error wie eine Funktion verwendet wird, das heißt ohne new, wird es ein Error Objekt zurückgeben.
Daher wird ein einfacher Aufruf von Error die gleiche Ausgabe erzeugen, die das Konstruieren eines Error Objekts über das new Schlüsselwort geben würde.
const x = Error("I was created using a function call!");
// above has the same functionality as following
const y = new Error('I was constructed via the "new" keyword!');
Erneutes Auslösen eines Fehlers mit einer Ursache
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 für den neuen Error übergeben, wie gezeigt.
try {
frameworkThatCanThrow();
} catch (err) {
throw new Error("New error message", { cause: err });
}
Für ein ausführlicheres Beispiel siehe Error > Differenzierung zwischen ähnlichen Fehlern.
Weglassen des options Arguments
JavaScript versucht nur dann options.cause zu lesen, wenn options ein Objekt ist — dies vermeidet Verwirrung mit der anderen nicht standardmäßigen Error(message, fileName, lineNumber) Signatur, die als zweiten Parameter einen String erfordert. Wenn Sie options weglassen, einen primitiven Wert als options übergeben oder ein Objekt ohne die cause Eigenschaft übergeben, dann wird das erstellte Error Objekt keine cause Eigenschaft haben.
// Omitting options
const error1 = new Error("Error message");
console.log("cause" in error1); // false
// Passing a primitive value
const error2 = new Error("Error message", "");
console.log("cause" in error2); // false
// Passing an object without a cause property
const error3 = new Error("Error message", { details: "http error" });
console.log("cause" in error3); // false
Spezifikationen
| Spezifikation |
|---|
| ECMAScript® 2027 Language Specification> # sec-error-constructor> |