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
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 ohnenew
aufgerufen werden. Beide Optionen erzeugen eine neueError
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 denError()
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 desError()
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.
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.
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.
// 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
- Polyfill von
Error
mitcause
Unterstützung incore-js
throw
try...catch
- Error causes auf v8.dev (2021)