[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Error/isError [Back]  [Original]

Error : mthode statique isError() - JavaScript | MDN

Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.

View in English Always switch to English

Error : mthode statique isError()

Disponibilit limite

Cette fonctionnalit n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utiliss.

Vous voulez une meilleure prise en charge pour cette fonctionnalit ? Dites-nous pourquoi.

La mthode statique Error.isError() dtermine si la valeur passe est une erreur Error.

Dans cet article

Syntaxe

js
Error.isError(value)

Paramtres

value

La valeur vrifier.

Valeur de retour

true si value est une Error ; sinon, false.

Description

Error.isError() vrifie si la valeur passe est une Error. Elle le fait en effectuant une vrification brande pour un champ priv initialis par le constructeur Error(). C'est le mme mcanisme utilis par Array.isArray(), qui est luimme similaire au mcanisme utilis par l'oprateur in.

C'est une alternative plus robuste instanceof Error car elle vite les faux positifs et les faux ngatifs :

  • Error.isError() rejette les valeurs qui ne sont pas de vritables instances de Error, mme si elles ont Error.prototype dans leur chane de prototypes instanceof Error les accepterait car il vrifie la chane de prototypes.
  • Error.isError() accepte les objets Error crs dans un autre contexte d'excution instanceof Error renvoie false pour ces objets car l'identit du constructeur Error diffre entre les contextes d'excution.

Error.isError() retourne true pour les instances de DOMException. Cela s'explique par le fait que, bien que DOMException ne soit pas dfini comme une vritable sousclasse d'Error (le constructeur Error n'est pas le prototype du constructeur DOMException), DOMException se comporte nanmoins comme Error pour tous les besoins de la vrification brande.

Exemples

Utiliser la mthode Error.isError()

js
// tous les appels suivants retournent true
Error.isError(new Error());
Error.isError(new TypeError());
Error.isError(new DOMException());
try {
  1 + 1n;
} catch (e) {
  console.log(Error.isError(e)); // L'opration a lev un TypeError, donc ceci retourne true
}

// tous les appels suivants retournent false
Error.isError();
Error.isError({});
Error.isError(null);
Error.isError(undefined);
Error.isError(17);
Error.isError("Error");
Error.isError(true);
Error.isError(false);
// Ceci n'est pas une erreur, car l'objet n'a pas le champ priv
// initialis par le constructeur Error
Error.isError({ __proto__: Error.prototype });

instanceof vs. Error.isError()

Lors de la vrification d'une instance d'Error, Error.isError() est prfr instanceof car il fonctionne entre contextes d'excution.

js
const iframe = document.createElement("iframe");
document.body.appendChild(iframe);
const xError = window.frames[window.frames.length - 1].Error;
const error = new xError();

// Vrification correcte d'Error
Error.isError(error); // true
// Le prototype de error est xError.prototype, qui est un
// objet diffrent de Error.prototype
error instanceof Error; // false

Normaliser les erreurs interceptes

Vous pouvez utiliser Error.isError() pour dtecter si la valeur intercepte est une erreur et la normaliser en un objet Error.

js
try {
  throw "Oups : ceci n'est pas un objet Error";
} catch (e) {
  if (!Error.isError(e)) {
    e = new Error(e);
  }
  console.error(e.message);
}

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-error.iserror

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page