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)

Hinweis: Error() kann mit oder ohne new aufgerufen werden. Beide Methoden erstellen eine neue Error-Instanz.

Parameter

message Optional

Eine lesbare Beschreibung des Fehlers.

options Optional

Ein Objekt mit den folgenden Eigenschaften:

cause Optional

Ein Wert, der die spezifische Ursache des Fehlers angibt, reflektiert in der cause Eigenschaft. Wenn ein Fehler abgefangen und mit einer spezifischeren oder nützlicheren Fehlermeldung erneut geworfen wird, kann diese Eigenschaft verwendet werden, um den ursprünglichen Fehler weiterzugeben.

fileName Optional Nicht standardisiert

Der Pfad zu der Datei, die diesen Fehler ausgelöst hat, reflektiert 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, reflektiert in der lineNumber Eigenschaft. Standardmäßig ist dies die Zeilennummer, die den Error() Konstruktor aufruft.

Beispiele

Funktionsaufruf oder neue Konstruktion

Wenn Error wie eine Funktion genutzt wird, also ohne new, wird ein Error-Objekt zurückgegeben. Daher wird ein einfacher Aufruf von Error dasselbe Ergebnis liefern, das man durch die Konstruktion eines Error-Objekts über das new Schlüsselwort erzielt.

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 werfen

Es ist manchmal nützlich, einen Fehler abzufangen und ihn mit einer neuen Nachricht erneut zu werfen. In diesem Fall sollten Sie den ursprünglichen Fehler in den Konstruktor für den 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 > Unterschiede zwischen ähnlichen Fehlern.

Weglassen des Optionsarguments

JavaScript versucht nur, options.cause zu lesen, wenn options ein Objekt ist — dies vermeidet eine Mehrdeutigkeit mit der anderen, nicht standardmäßigen Error(message, fileName, lineNumber) Signatur, die erfordert, dass der zweite Parameter ein String ist. 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® 2026 Language Specification
# sec-error-constructor

Browser-Kompatibilität

Siehe auch