Window: reportError()-Methode

Die reportError()-Methode der Window-Schnittstelle kann verwendet werden, um Fehler an die Konsole oder Ereignishandler globaler Bereiche zu melden und emuliert so eine nicht abgefangene JavaScript-Ausnahme.

Dieses Feature ist in erster Linie für benutzerdefinierte Event-Dispatching- oder Callback-Manipulationsbibliotheken gedacht. Bibliotheken können diese Funktion nutzen, um Fehler im Callback-Code abzufangen und sie an den obersten Handler weiterzuleiten. Dies stellt sicher, dass eine Ausnahme in einem Callback nicht verhindert, dass andere behandelt werden, während gleichzeitig sichergestellt wird, dass Stack-Trace-Informationen für das Debugging auf oberster Ebene leicht zugänglich sind.

Syntax

js
reportError(throwable)

Parameter

throwable

Ein Fehlerobjekt wie zum Beispiel ein TypeError.

Rückgabewert

Keiner (undefined).

Ausnahmen

TypeError

Die Methode wird ohne ein Fehlerargument aufgerufen.

Beispiele

Funktionsprüfung für die Methode mit:

js
if (typeof window.reportError === "function") {
  // function is defined
}

Der folgende Code zeigt, wie Sie einen Fehler erstellen und melden können und wie er entweder mit der onerror-Ereignishandlereigenschaft oder durch Hinzufügen eines Listeners für das error-Ereignis abgefangen werden kann. Beachten Sie, dass der Handler, der onerror zugewiesen ist, true zurückgeben muss, um zu verhindern, dass das Ereignis weiter verbreitet wird.

js
const newError = new Error("Some error message", "someFile.js", 11);
window.reportError(newError);

window.onerror = (message, source, lineno, colno, error) => {
  console.error(`message: ${error.message}, lineno: ${lineno}`);
  return true;
};

window.addEventListener("error", (error) => {
  console.error(error.filename);
});

// Output
// > "message:Some error message, lineno: 11"
// > "someFile.js"

Spezifikationen

Specification
HTML
# runtime-script-errors

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
reportError

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support

Siehe auch