| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Error/isError | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more browser support for this feature? Tell us why.
Die statische Methode Error.isError() bestimmt, ob der bergebene Wert ein Error ist.
Error.isError(value)
valueDer zu berprfende Wert.
true, wenn value ein Error ist; andernfalls false.
Error.isError() berprft, ob der bergebene Wert ein Error ist. Dies erfolgt durch einen gebrandeten Check fr ein privates Feld, das durch den Error()-Konstruktor initialisiert wurde. Dies ist derselbe Mechanismus, der von Array.isArray() verwendet wird, welcher wiederum dem Mechanismus hnlich ist, der vom in-Operator verwendet wird.
Es ist eine robustere Alternative zu instanceof Error, da es falsche Positiv- und Negativmeldungen vermeidet:
Error.isError() lehnt Werte ab, die keine tatschlichen Error-Instanzen sind, selbst wenn sie Error.prototype in ihrer Prototypenkette haben instanceof Error wrde diese akzeptieren, da es die Prototypenkette berprft.Error.isError() akzeptiert Error-Objekte, die in einem anderen Realm konstruiert wurden instanceof Error gibt false aus, da die Identitt des Error-Konstruktors zwischen Realms unterschiedlich ist.Error.isError() gibt true fr DOMException-Instanzen zurck. Dies liegt daran, dass DOMException, obwohl es nicht als echte Unterklasse von Error spezifiziert ist (der Error-Konstruktor ist nicht der Prototyp des DOMException-Konstruktors), fr alle gebrandeten Prfzwecke immer noch wie Error funktioniert.
// all following calls return true
Error.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 false
Error.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 constructor
Error.isError({ __proto__: Error.prototype });
Wenn eine Error-Instanz berprft wird, ist Error.isError() gegenber instanceof vorzuziehen, da es ber Realms hinweg funktioniert.
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 Error
Error.isError(error); // true
// The prototype of error is xError.prototype, which is a
// different object from Error.prototype
error instanceof Error; // false
Sie knnen Error.isError() verwenden, um zu erkennen, ob der gefangene Wert ein Fehler ist und ihn zu einem Fehlerobjekt zu normalisieren.
try {
throw "Oops; this is not an Error object";
} catch (e) {
if (!Error.isError(e)) {
e = new Error(e);
}
console.error(e.message);
}
| Spezifikation |
|---|
| ECMAScript 2027 LanguageSpecification # sec-error.iserror |
ErrorObject/FunctionAggregateErrorEvalErrorInternalErrorRangeErrorReferenceErrorSyntaxErrorTypeErrorURIErrorDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |