Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. Eingebaute Standardobjekte
  5. Fehler
  6. isError()

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

Error.isError()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Die statische MethodeError.isError() bestimmt, ob der übergebene Wert einError ist.

Syntax

js
Error.isError(value)

Parameter

value

Der zu überprüfende Wert.

Rückgabewert

true, wennvalue einError ist; andernfallsfalse.

Beschreibung

Error.isError() überprüft, ob der übergebene Wert einError ist. Dies erfolgt durch einengebrandeten Check für ein privates Feld, das durch denError()-Konstruktor initialisiert wurde. Dies ist derselbe Mechanismus, der vonArray.isArray() verwendet wird, welcher wiederum dem Mechanismus ähnlich ist, der vomin-Operator verwendet wird.

Es ist eine robustere Alternative zuinstanceof Error, da es falsche Positiv- und Negativmeldungen vermeidet:

  • Error.isError() lehnt Werte ab, die keine tatsächlichenError-Instanzen sind, selbst wenn sieError.prototype in ihrer Prototypenkette haben —instanceof Error würde diese akzeptieren, da es die Prototypenkette überprüft.
  • Error.isError() akzeptiertError-Objekte, die in einem anderen Realm konstruiert wurden —instanceof Error gibtfalse aus, da die Identität desError-Konstruktors zwischen Realms unterschiedlich ist.

Error.isError() gibttrue fürDOMException-Instanzen zurück. Dies liegt daran, dassDOMException, obwohl es nicht als echte Unterklasse vonError spezifiziert ist (derError-Konstruktor ist nicht der Prototyp desDOMException-Konstruktors), für alle gebrandeten Prüfzwecke immer noch wieError funktioniert.

Beispiele

Verwendung von Error.isError()

js
// all following calls return trueError.isError(new Error());Error.isError(new TypeError());Error.isError(new DOMException());try {  1 + 1n;} catch (e) {  console.log(Error.isError(e)); // The operation threw a TypeError, so this returns true}// all following calls return falseError.isError();Error.isError({});Error.isError(null);Error.isError(undefined);Error.isError(17);Error.isError("Error");Error.isError(true);Error.isError(false);// This is not an error, because the object does not have the private field// initialized by the Error constructorError.isError({ __proto__: Error.prototype });

instanceof vs. Error.isError()

Wenn eineError-Instanz überprüft wird, istError.isError() gegenüberinstanceof vorzuziehen, da es über Realms hinweg funktioniert.

js
const iframe = document.createElement("iframe");document.body.appendChild(iframe);const xError = window.frames[window.frames.length - 1].Error;const error = new xError();// Correctly checking for ErrorError.isError(error); // true// The prototype of error is xError.prototype, which is a// different object from Error.prototypeerror instanceof Error; // false

Normalisierung gefangener Fehler

Sie könnenError.isError() verwenden, um zu erkennen, ob der gefangene Wert ein Fehler ist und ihn zu einem Fehlerobjekt zu normalisieren.

js
try {  throw "Oops; this is not an Error object";} catch (e) {  if (!Error.isError(e)) {    e = new Error(e);  }  console.error(e.message);}

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-error.iserror

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp