From 844f5103992238c0c23203286dad16a466e89c97 Mon Sep 17 00:00:00 2001 From: julieng Date: Tue, 3 Aug 2021 08:03:09 +0200 Subject: move *.html to *.md --- .../reference/global_objects/error/index.html | 246 --------------------- 1 file changed, 246 deletions(-) delete mode 100644 files/fr/web/javascript/reference/global_objects/error/index.html (limited to 'files/fr/web/javascript/reference/global_objects/error/index.html') diff --git a/files/fr/web/javascript/reference/global_objects/error/index.html b/files/fr/web/javascript/reference/global_objects/error/index.html deleted file mode 100644 index 5675ff256a..0000000000 --- a/files/fr/web/javascript/reference/global_objects/error/index.html +++ /dev/null @@ -1,246 +0,0 @@ ---- -title: Error -slug: Web/JavaScript/Reference/Global_Objects/Error -tags: - - Error - - JavaScript - - Reference -translation_of: Web/JavaScript/Reference/Global_Objects/Error -original_slug: Web/JavaScript/Reference/Objets_globaux/Error ---- -
{{JSRef}}
- -

Le constructeur Error crée un objet d'erreur. Des instances d'objets Error sont déclenchées lorsque des erreurs d'exécution surviennent. L'objet Error peut aussi être utilisé comme objet de base pour des exceptions définies par l'utilisateur. Voir ci-dessous pour les types d'erreur natifs standard.

- -

Syntaxe

- -
new Error([message[, fileName[, lineNumber]]])
- -

Paramètres

- -
-
message {{optional_inline}}
-
Description de l'erreur sous une forme lisible par un humain.
-
fileName {{optional_inline}}{{Non-standard_inline}}
-
Argument qui sera utilisé pour la valeur de la propriété fileName dans l'objet Error créé. Par défaut, ce sera le nom du fichier contenant le code qui a appelé le constructeur Error().
-
lineNumber {{optional_inline}}{{Non-standard_inline}}
-
Argument qui sera utilisé pour la valeur de la propriété lineNumber dans l'objet Error créé. Par défaut, ce sera le numéro de la ligne contenant l'invocation du constructeur Error().
-
- -

Description

- -

Les erreurs d'exécution ont pour résultat la création et le déclenchement d'objets Error.

- -

Cette page documente l'utilisation de l'objet Error lui-même et son utilisation comme fonction constructeur. Pour une liste des propriétés et des méthodes héritées par les instances d'Error,  voir {{jsxref("Error.prototype")}}.

- -

Utilisation de Error comme fonction

- -

Lorsqu'Error est utilisée comme fonction sans utiliser l'opérateur {{jsxref("Opérateurs/L_opérateur_new", "new")}}, cet appel renverra un objet Error. Aussi, un simple appel à Error produira le même résultat qu'une invocation avec new.

- -
// Cette instruction :
-const x = Error("J'ai été créée sans new");
-
-// Aura le même effet que
-const y = new Error("J'ai été créée avec new");
- -

Types d'erreur

- -

En plus du constructeur Error générique, il existe sept autres constructeurs d'erreur de base en JavaScript. Pour les exceptions côté client, voir Contrôle du flux d'instructions et gestion des erreurs.

- -
-
{{jsxref("EvalError")}}
-
Crée une instance représentant une erreur se produisant en relation avec la fonction globale {{jsxref("eval","eval()")}}.
-
{{jsxref("RangeError")}}
-
Crée une instance représentant une erreur se produisant quand une variable numérique ou un paramètre est en dehors de sa plage de validité.
-
{{jsxref("ReferenceError")}}
-
Crée une instance représentant une erreur se produisant lors du déréférencement d'une référence invalide.
-
{{jsxref("SyntaxError")}}
-
Crée une instance représentant une erreur de syntaxe se produisant lors d'une analyse de code dans {{jsxref("eval", "eval()")}}.
-
{{jsxref("TypeError")}}
-
Crée une instance représentant une erreur se produisant quand une variable ou un paramètre n'est pas d'un type valide.
-
{{jsxref("URIError")}}
-
Crée une instance représentant une erreur se produisant quand des paramètres invalides sont passés à {{jsxref("encodeURI", "encodeURI()")}} ou à {{jsxref("decodeURI", "decodeURI()")}}.
-
{{JSxRef("AggregateError")}}
-
Crée une instance représentant différentes erreurs agrégées en une seule lorsque plusieurs erreurs sont rapportées par une opération, par exemple avec {{JSxRef("Promise.any()")}}.
-
{{jsxref("InternalError")}} {{non-standard_inline}}
-
Crée une instance représentant une erreur se produisant quand une erreur interne dans le moteur JavaScript est déclenchée. Par ex., "too much recursion".
-
- -

Propriétés

- -
-
{{jsxref("Error.prototype")}}
-
Permet l'ajout de propriétés aux instances Error.
-
- -

Méthodes

- -

L'objet global Error ne contient pas de méthodes en propre, toutefois, il hérite de certaines méthodes via la chaine de prototype.

- -

Instances d'Error

- -
{{page('fr/docs/JavaScript/Reference/Objets_globaux/Error/prototype', 'Description')}}
- -

Propriétés

- -

{{page('fr/docs/JavaScript/Reference/Objets_globaux/Error/prototype', 'Propriétés')}}

- -

Méthodes

- -

{{page('fr/docs/JavaScript/Reference/Objets_globaux/Error/prototype', 'Méthodes')}}

- -

Exemples

- -

Déclenchement d'une erreur générique

- -

Vous créez habituellement un objet Error dans l'intention de le déclencher en utilisant le mot-clé {{jsxref("Instructions/throw", "throw")}}. Vous pouvez gérer l'erreur en utilisant la construction {{jsxref("Instructions/try...catch", "try...catch")}} :

- -
try {
-    throw new Error("Ouups !");
-} catch (e) {
-    console.log(e.name + ": " + e.message);
-}
-
- -

Gestion d'une erreur spécifique

- -

Vous pouvez choisir de ne gérer que des types d'erreur particuliers en testant le type de l'erreur via la propriété {{jsxref("Object.prototype.constructor", "constructor")}} de l'erreur ou, si vous écrivez pour des interpréteurs JavaScript modernes, le mot-clé {{jsxref("Opérateurs/instanceof", "instanceof")}} :

- -
try {
-    machin.truc();
-} catch (e) {
-    if (e instanceof EvalError) {
-        console.log(e.name + ": " + e.message);
-    } else if (e instanceof RangeError) {
-        console.log(e.name + ": " + e.message);
-    }
-    // ... etc
-}
-
- -

Types d'erreur personnalisés

- -

Vous pouvez vouloir définir vos propres types d'erreur dérivants d'Error pour pouvoir écrire throw new MonErreur() et utiliser instanceof MonErreur afin de vérifier le type d'erreur dans le gestionnaire d'exceptions. Cela a pour résultat un code de gestion d'erreur plus propre et plus cohérent. Voir What's a good way to extend Error in JavaScript? sur StackOverflow pour une discussion en profondeur.

- -

Classes d'erreur personnalisées avec ECMAScript 2015 / ES6

- -
-

Attention : Babel, dans les versions antérieures à Babel 7, ainsi que d'autres transpileurs ne géreront pas correctement le code suivant sans configuration supplémentaire. Les versions de Babel antérieures à la version 7 peuvent uniquement gérer les classes d'erreur personnalisées lorsque celles-ci sont créées avec Object.defineProperty().

-
- -
-

Note : Certains navigateurs incluent le constructeur CustomError (Erreur Personnalisée) dans la pile d'appels lors de l'utilisation de classes ES6.

-
- -
class CustomError extends Error {
-  constructor(machin = 'truc', ...params) {
-    // Passer les arguments restants (incluant ceux spécifiques au vendeur) au constructeur parent
-    super(...params);
-
-    // Maintenir dans la pile une trace adéquate de l'endroit où l'erreur a été déclenchée (disponible seulement en V8)
-    if(Error.captureStackTrace) {
-      Error.captureStackTrace(this, CustomError);
-    }
-    this.name = 'CustomError';
-    // Informations de déboguage personnalisées
-    this.machin = machin;
-    this.date = new Date();
-  }
-}
-
-try {
-  throw new CustomError('bidule', 'messageBidule');
-} catch(e){
-  console.log(e.name);    // CustomError
-  console.log(e.machin);  // bidule
-  console.log(e.message); // messageBidule
-  console.log(e.stack);   // stacktrace
-}
- -

Objet d'erreur personnalisé ES5

- -
-

Attention : Tous les navigateurs incluent le constructeur CustomError dans la pile  d'appel lorsqu'une déclaration prototypale est utilisée.

-
- -
function CustomError(machin, message, nomFichier, numeroLigne) {
-  var instance = new Error(message, nomFichier, numeroLigne);
-  instance.name = 'CustomError';
-  instance.machin = machin;
-  Object.setPrototypeOf(instance, Object.getPrototypeOf(this));
-  if(Error.captureStackTrace) {
-    Error.captureStackTrace(instance, CustomError);
-  }
-  return instance;
-}
-
-CustomError.prototype = Object.create(Error.prototype, {
-  constructor: {
-    value: Error,
-    enumerable: false,
-    writable: true,
-    configurable: true
-  }
-});
-
-if (Object.setPrototypeOf){
-  Object.setPrototypeOf(CustomError, Error);
-} else {
-  CustomError.__proto__ = Error;
-}
-
-
-try {
-  throw new CustomError('bidule', 'messageBidule');
-} catch(e){
-  console.log(e.name);       // CustomError
-  console.log(e.toto);       // bidule
-  console.log(e.message);    // messageBidule
-  console.log(e.lineNumber); // 29
-}
- -

Spécifications

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('ESDraft', '#sec-error-objects', 'Error')}}{{Spec2('ESDraft')}}
{{SpecName('ES2015', '#sec-error-objects', 'Error')}}{{Spec2('ES2015')}}
{{SpecName('ES5.1', '#sec-15.11', 'Error')}}{{Spec2('ES5.1')}}
{{SpecName('ES1')}}{{Spec2('ES1')}}Définition initiale. Implémentée avec JavaScript 1.1.
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.builtins.Error")}}

- -

Voir aussi

- - -- cgit v1.2.3-54-g00ecf