Error() Konstruktor

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Der Error() Konstruktor erstellt Error Objekte.

Syntax

js
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)

Note: Error() kann mit oder ohne new aufgerufen werden. Beide Optionen erzeugen eine neue Error Instanz.

Parameter

message Optional

Eine verständliche Beschreibung des Fehlers.

options Optional

Ein Objekt, das die folgenden Eigenschaften besitzt:

cause Optional

Ein Wert, der die spezifische Ursache des Fehlers angibt, dargestellt in der cause Eigenschaft. Beim Fangen und erneuten Werfen eines Fehlers mit einer spezifischeren oder nützlicheren Fehlermeldung kann diese Eigenschaft verwendet werden, um den ursprünglichen Fehler weiterzugeben.

fileName Optional Nicht standardisiert

Der Pfad zur Datei, die diesen Fehler ausgelöst hat, dargestellt in der fileName Eigenschaft. Standardmäßig ist dies der Name der Datei, die den Error() Konstruktor aufgerufen hat.

lineNumber Optional Nicht standardisiert

Die Zeilennummer innerhalb der Datei, in der der Fehler ausgelöst wurde, dargestellt in der lineNumber Eigenschaft. Standardmäßig ist dies die Zeilennummer, die den Aufruf des Error() Konstruktors enthält.

Beispiele

Funktionsaufruf oder neue Konstruktion

Wenn Error als Funktion verwendet wird, d.h. ohne new, wird es ein Error Objekt zurückgeben. Ein einfacher Aufruf von Error wird daher das gleiche Ergebnis liefern wie die Konstruktion eines Error Objekts über das new Schlüsselwort.

js
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 Werfen eines Fehlers mit einer Ursache

Es ist manchmal nützlich, einen Fehler zu fangen und ihn mit einer neuen Nachricht erneut zu werfen. In diesem Fall sollten Sie den ursprünglichen Fehler an den Konstruktor des neuen Error übergeben, wie gezeigt.

js
try {
  frameworkThatCanThrow();
} catch (err) {
  throw new Error("New error message", { cause: err });
}

Für ein detaillierteres Beispiel siehe Error > Unterschied zwischen ähnlichen Fehlern erkennen.

Weglassen des options Arguments

JavaScript versucht nur dann options.cause zu lesen, wenn options ein Objekt ist — dies vermeidet Mehrdeutigkeiten mit der anderen nicht-standardisierten Error(message, fileName, lineNumber) Signatur, die den zweiten Parameter als Zeichenfolge erfordert. Wenn Sie options weglassen, einen primitiven Wert als options übergeben oder ein Objekt ohne die cause Eigenschaft übergeben, wird das erstellte Error Objekt keine cause Eigenschaft haben.

js
// 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

Specification
ECMAScript Language Specification
# sec-error-constructor

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch