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 Aufrufarten erstellen eine neue Error-Instanz.

Parameter

message Optional

Eine menschenlesbare Beschreibung des Fehlers.

options Optional

Ein Objekt mit den folgenden Eigenschaften:

cause Optional

Ein Wert, der die spezifische Ursache des Fehlers angibt, widergespiegelt in der cause-Eigenschaft. Beim Abfangen und erneuten Auslösen eines Fehlers mit einer spezifischeren oder nützlicheren Fehlermeldung kann diese Eigenschaft verwendet werden, um den ursprünglichen Fehler zu übergeben.

fileName Optional Nicht standardisiert

Der Pfad zur Datei, die diesen Fehler verursacht hat, widergespiegelt 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 aufgetreten ist, widergespiegelt in der lineNumber-Eigenschaft. Standardmäßig ist dies die Zeilennummer, die den Error()-Konstruktor aufruft.

Beispiele

Funktionsaufruf oder Erstellung mit new

Wenn Error wie eine Funktion verwendet wird, also ohne new, wird ein Error-Objekt zurückgegeben. Ein einfacher Aufruf von Error erzeugt daher dieselbe Ausgabe, die das Erstellen eines Error-Objekts mit dem new-Schlüsselwort erzeugen würde.

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!');

Einen Fehler mit einer Ursache erneut auslösen

Es ist manchmal nützlich, einen Fehler abzufangen und diesen 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.

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

Für ein detaillierteres Beispiel siehe Error > Zwischen ähnlichen Fehlern unterscheiden.

Weglassen des options-Arguments

JavaScript versucht nur options.cause zu lesen, wenn options ein Objekt ist — dies vermeidet Mehrdeutigkeit mit der anderen nicht standardmäßigen Error(message, fileName, lineNumber)-Signatur, die als zweiten Parameter eine Zeichenkette 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.

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® 2025 Language Specification
# sec-error-constructor

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch