From 39f2114f9797eb51994966c6bb8ff1814c9a4da8 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 12:36:08 +0100 Subject: unslug fr: move --- .../global_objects/error/columnnumber/index.html | 43 ++++ .../global_objects/error/filename/index.html | 48 ++++ .../reference/global_objects/error/index.html | 249 +++++++++++++++++++++ .../global_objects/error/linenumber/index.html | 51 +++++ .../global_objects/error/message/index.html | 76 +++++++ .../reference/global_objects/error/name/index.html | 76 +++++++ .../global_objects/error/stack/index.html | 124 ++++++++++ .../global_objects/error/tosource/index.html | 55 +++++ .../global_objects/error/tostring/index.html | 112 +++++++++ 9 files changed, 834 insertions(+) create mode 100644 files/fr/web/javascript/reference/global_objects/error/columnnumber/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/error/filename/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/error/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/error/linenumber/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/error/message/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/error/name/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/error/stack/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/error/tosource/index.html create mode 100644 files/fr/web/javascript/reference/global_objects/error/tostring/index.html (limited to 'files/fr/web/javascript/reference/global_objects/error') diff --git a/files/fr/web/javascript/reference/global_objects/error/columnnumber/index.html b/files/fr/web/javascript/reference/global_objects/error/columnnumber/index.html new file mode 100644 index 0000000000..813eb382a9 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/error/columnnumber/index.html @@ -0,0 +1,43 @@ +--- +title: Error.prototype.columnNumber +slug: Web/JavaScript/Reference/Objets_globaux/Error/columnNumber +tags: + - Error + - JavaScript + - Non-standard + - Propriété + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Error/columnNumber +--- +
{{JSRef}} {{non-standard_header}}
+ +

La propriété columnNumber contient le numéro de la colonne, dans la ligne du fichier qui a déclenché l'erreur.

+ +

Exemples

+ +

Utiliser de columnNumber

+ +
var e = new Error("Ne peut pas lire la donnée");
+throw e;
+console.log(e.columnNumber) // 0
+
+ +

Spécifications

+ +

Ne fait partie d'aucune spécification. Non standard.

+ +

Compatibilité des navigateurs

+ +
+ + +

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

+
+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/error/filename/index.html b/files/fr/web/javascript/reference/global_objects/error/filename/index.html new file mode 100644 index 0000000000..fb52011488 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/error/filename/index.html @@ -0,0 +1,48 @@ +--- +title: Error.prototype.fileName +slug: Web/JavaScript/Reference/Objets_globaux/Error/fileName +tags: + - Error + - JavaScript + - Non-standard + - Propriété + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Error/fileName +--- +
{{JSRef}} {{non-standard_header}}
+ +

La propriété fileName contient le chemin vers le fichier qui a déclenché l'erreur.

+ +

Description

+ +

Cette propriété non-standard contient le chemin vers le fichier qui a déclenché cette erreur. Si elle est appelée depuis un débugger (les outils de développement de Firefox par exemple), "debugger eval code" sera renvoyé.

+ +

Exemples

+ +

Utiliser fileName

+ +
var e = new Error("Ne peut pas lire la donnée");
+throw e;
+// e.fileName peut ressembler à "file:///C:/exemple.html"
+
+ +

Spécifications

+ +

Ne fait partie d'aucune spécification. Non standard.

+ +

Compatibilité des navigateurs

+ +
+ + +

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

+
+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/error/index.html b/files/fr/web/javascript/reference/global_objects/error/index.html new file mode 100644 index 0000000000..e267e237f4 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/error/index.html @@ -0,0 +1,249 @@ +--- +title: Error +slug: Web/JavaScript/Reference/Objets_globaux/Error +tags: + - Error + - JavaScript + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/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

+ + diff --git a/files/fr/web/javascript/reference/global_objects/error/linenumber/index.html b/files/fr/web/javascript/reference/global_objects/error/linenumber/index.html new file mode 100644 index 0000000000..8067f9d42e --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/error/linenumber/index.html @@ -0,0 +1,51 @@ +--- +title: Error.prototype.lineNumber +slug: Web/JavaScript/Reference/Objets_globaux/Error/lineNumber +tags: + - Error + - JavaScript + - Non-standard + - Propriété + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Error/lineNumber +--- +
{{JSRef}} {{non-standard_header}}
+ +

La propriété lineNumber contient le numéro de la ligne qui a déclenché l'erreur dans le fichier.

+ +

Exemples

+ +

Utiliser lineNumber

+ +
var e = new Error("Ne peut pas lire la donnée");
+throw e;
+console.log(e.lineNumber) // 2
+ +

Alternative en utilisant l'événement error

+ +
window.addEventListener("error", function (e) {
+ console.log(e.lineNumber); //5
+});
+var e = new Error('Ne peut pas lire la donnée');
+throw e;
+ +

Spécifications

+ +

Ne fait partie d'aucune spécification. Non standard.

+ +

Compatibilité des navigateurs

+ +
+ + +

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

+
+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/error/message/index.html b/files/fr/web/javascript/reference/global_objects/error/message/index.html new file mode 100644 index 0000000000..e8a680a0b6 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/error/message/index.html @@ -0,0 +1,76 @@ +--- +title: Error.prototype.message +slug: Web/JavaScript/Reference/Objets_globaux/Error/message +tags: + - Error + - JavaScript + - Propriété + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Error/message +--- +
{{JSRef}}
+ +

La propriété message est une description de l'erreur, écrite pour être lue par un humain.

+ +

Description

+ +

La propriété contient une brève description de l'erreur si elle est accessible, ou si elle a été définie. SpiderMonkey utilise intensivement la propriété message pour les erreurs d'exécution. La propriété message, combinée à la propriété {{jsxref("Error.name", "name")}}, est utilisée par la méthode {{jsxref("Error.prototype.toString()")}} pour créer une représentation de l'erreur sous la forme d'une chaine de caractères.

+ +

Par défaut, la propriété message est une chaine de caractères vide, mais ce comportement peut être remplacé pour une instance, en renseignant un message comme premier argument du constructeur {{jsxref("Error")}}.

+ +

Exemples

+ +

Déclencher une erreur personnalisée

+ +
var e = new Error("Impossible de lire la donnée");
+// e.message est "Impossible de lire la donnée"
+throw e;
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpécificationStatutCommentaires
{{SpecName('ES1')}}{{Spec2('ES1')}}Définition initiale.
{{SpecName('ES5.1', '#sec-15.11.4.3', 'Error.prototype.message')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-error.prototype.message', 'Error.prototype.message')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-error.prototype.message', 'Error.prototype.message')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ +
+ + +

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

+
+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/error/name/index.html b/files/fr/web/javascript/reference/global_objects/error/name/index.html new file mode 100644 index 0000000000..edbe9189ff --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/error/name/index.html @@ -0,0 +1,76 @@ +--- +title: Error.prototype.name +slug: Web/JavaScript/Reference/Objets_globaux/Error/name +tags: + - Error + - JavaScript + - Propriété + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Error/name +--- +
{{JSRef}}
+ +

La propriété name est une chaîne de caractères représentant le nom du type d'erreur. La valeur initiale est "Error".

+ +

Description

+ +

Par défaut, les instances d'{{jsxref("Error")}} reçoivent le nom "Error". La propriété name, associée à la propriété {{jsxref("Error.message", "message")}}, est utilisée par la méthode {{jsxref("Error.prototype.toString()")}} pour créer une représentation de l'erreur sous la forme d'une chaine de caractères.

+ +

Exemples

+ +

Déclencher une erreur personnalisée

+ +
var e = new Error("Donnée malformée"); // e.name est "Error"
+
+e.name = "ParseError";
+throw e;
+// e.toString() renverra "ParseError: Donnée malformée"
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpécificationStatutCommentaires
{{SpecName('ES1')}}{{Spec2('ES1')}}Définition initiale.
{{SpecName('ES5.1', '#sec-15.11.4.2', 'Error.prototype.name')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-error.prototype.name', 'Error.prototype.name')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-error.prototype.name', 'Error.prototype.name')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ +
+ + +

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

+
+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/error/stack/index.html b/files/fr/web/javascript/reference/global_objects/error/stack/index.html new file mode 100644 index 0000000000..06c062dae2 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/error/stack/index.html @@ -0,0 +1,124 @@ +--- +title: Error.prototype.stack +slug: Web/JavaScript/Reference/Objets_globaux/Error/Stack +tags: + - Error + - JavaScript + - Non-standard + - Propriété + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Error/Stack +--- +
{{JSRef}} {{non-standard_header}}
+ +

La propriété non-standard stack des objets {{jsxref("Error")}} fournit une trace des fonctions qui ont été appelées, dans quel ordre, depuis quelle ligne de quel fichier, et avec quels arguments. La chaine de pile remonte des appels les plus récents jusqu'aux plus anciens, ramenant à l'appel original de la portée globale.

+ +

Description

+ +

Chaque étape sera séparée par une nouvelle ligne, la première partie de la ligne étant le nom de la fonction (si ce n'est pas un appel depuis la portée globale), suivi du signe arobase (@), de l'emplacement du fichier (sauf quand la fonction est le constructeur d'erreur lorsque l'erreur est déclenchée), de deux-points, et, s'il y a un emplacement de fichier, du numéro de ligne. (Notez que l'objet {{jsxref("Error")}} possède aussi les propriétés fileNamelineNumber et columnNumber pour leur récupération à partir de l'erreur déclenchée (mais seulement l'erreur, et pas sa trace)).

+ +

Notez que ceci est le format utilisé par Firefox. Il n'y a aucun formatage standard. Cependant Safari 6+ et Opera 12- utilisent un format très similaire. Les navigateurs utilisant le moteur JavaScript V8 (tel que Chrome, Opera 15+, Navigateur Android) et IE10+, utilisent un format différent (voir la documentation MSDN error.stack).

+ +

Valeurs des arguments dans la pile : avant Firefox 14 ({{bug("744842")}}), le nom d'une fonction étaient suivis par les valeurs des arguments converties en une chaine de caractères entre parenthèses, immédiatement avant le signe arobase (@). Tandis qu'un objet (ou un tableau, etc.) apparaissait sous la forme convertie "[object Object]", et en tant que tel, ne pouvait pas être réévalué en les objets réels, les valeurs scalaires pouvaient être récupérées (bien qu'il soit plus facile — c'est toujours possible dans Firefox 14 — d'utiliser arguments.callee.caller.arguments, tout comme le nom de la fonction pouvait être récupéré avec arguments.callee.caller.name). "undefined" est listé comme "(void 0)". Notez que si des arguments chaines de caractères étaient passés avec des valeurs comme "@", "(", ")" (ou si dans les noms de fichier), vous ne pouviez pas vous reposez facilement sur ceux-ci pour découper la ligne en les parties qui la composent. Par conséquent, dans Firefox 14 et ultérieur, ceci est moins un problème.

+ +

Les différents navigateurs définissent cette valeur à différents instants. Par exemple, Firefox la définit lors de la création d'un objet {{jsxref("Error")}}, tandis que PhantomJS ne la définit que lors du déclenchement de l'{{jsxref("Error")}}, et la documentation MSDN semble correspondre à l'implémentation PhantomJS.

+ +

Exemples

+ +

Le code HTML suivant démontre l'utilisation de la propriété stack.

+ +
<!DOCTYPE HTML>
+<meta charset="UTF-8">
+<title>Exemple de Trace de Pile</title>
+<body>
+    <script>
+        function trace() {
+            try {
+                throw new Error('monError');
+            }
+            catch(e) {
+                alert(e.stack);
+            }
+        }
+        function b() {
+            trace();
+        }
+        function a() {
+            b(3, 4, "\n\n", undefined, {});
+        }
+        a("premier appel, premierarg");
+    </script>
+
+ +

En supposant que ce code a été enregistré comme C:\exemple.html sur un système de fichier Windows, il produira un message d'alerte dans une nouvelle fenêtre avec le texte suivant :

+ +

À partir de Firefox 30 et ultérieur, ce message contiendra le numéro de colonne  ({{bug(762556)}}) :

+ +
trace@file:///C:/exemple.html:9:17
+b@file:///C:/exemple.html:16:13
+a@file:///C:/exemple.html:19:13
+@file:///C:/exemple.html:21:9
+ +

De Firefox 14 à Firefox 29 :

+ +
trace@file:///C:/exemple.html:9
+b@file:///C:/exemple.html:16
+a@file:///C:/exemple.html:19
+@file:///C:/exemple.html:21
+
+ +

Firefox 13 et antérieur aurait produit à la place le texte suivant :

+ +
Error("monError")@:0
+trace()@file:///C:/exemple.html:9
+b(3,4,"\n\n",(void 0),[object Object])@file:///C:/exemple.html:16
+a("premier appel, premierarg")@file:///C:/exemple.html:19
+@file:///C:/exemple.html:21
+
+ +

Pile d'un code evalué

+ +

À partir de Firefox 30 {{geckoRelease("30")}}, la pile d'erreur du code dans les appels à Function() et eval() produit désormais des piles avec des informations plus détaillées sur les numéros de lignes et de colonnes dans ces appels. Les appels de fonction sont indiqués par "> Function" et les appels d'eval par "> eval". Voir {{bug("332176")}}.

+ +
try {
+  new Function('throw new Error()')();
+} catch (e) {
+  console.log(e.stack);
+}
+
+// anonymous@file:///C:/exemple.html line 7 > Function:1:1
+// @file:///C:/exemple.html:7:6
+
+try {
+  eval("eval('ÉCHEC')");
+} catch (x) {
+  console.log(x.stack);
+}
+
+// @file:///C:/exemple.html line 7 > eval line 1 > eval:1:1
+// @file:///C:/exemple.html line 7 > eval:1:1
+// @file:///C:/exemple.html:7:6
+ +

Vous pouvez aussi utiliser la directive //# sourceURL pour nommer une source eval. Voir aussi Déboguer des sources évaluées dans les docs Débogueur, ainsi que ce blog post.

+ +

Spécifications

+ +

Ne fait partie d'aucune spécification. Non-standard.

+ +

Compatibilité des navigateurs

+ +
+ + +

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

+
+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/error/tosource/index.html b/files/fr/web/javascript/reference/global_objects/error/tosource/index.html new file mode 100644 index 0000000000..701364ed74 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/error/tosource/index.html @@ -0,0 +1,55 @@ +--- +title: Error.prototype.toSource() +slug: Web/JavaScript/Reference/Objets_globaux/Error/toSource +tags: + - Error + - JavaScript + - Méthode + - Non-standard + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Error/toSource +--- +
{{JSRef}} {{non-standard_header}}
+ +

La méthode toSource() renvoie le code source qui peut générer la même erreur.

+ +

Syntaxe

+ +
e.toSource()
+ +

Valeur de retour

+ +

Une chaîne de caractères qui contient le code source de l'erreur.

+ +

Description

+ +

Appeler la méthode toSource() d'une instance {{jsxref("Error")}} (Erreurs natives incluses) renverra le code source de l'erreur. Cette chaine de caractères peut être évaluée afin de créer un objet similaire. La chaine de caractères contenant le code source suit la structure du constructeur Error. Par exemple :

+ +
(new name(message ,fileName, lineNumber))
+ +

où ces attributs correspondent aux propriétés respectives de l'instance Error.

+ +
Note : Les propriétés utilisées par la méthode toSource() dans la création de cette chaine de caractères sont mutables et peuvent ne pas refléter correctement la fonction utilisée pour créer une instance d'erreur ou le nom du fichier ou la ligne à laquelle s'est produite l'erreur originale.
+ +

Spécifications

+ +

Ne fait partie d'aucun standard. Implémentée dans JavaScript 1.3.

+ +

Compatibilité des navigateurs

+ +
+ + +

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

+
+ +

Voir aussi

+ + diff --git a/files/fr/web/javascript/reference/global_objects/error/tostring/index.html b/files/fr/web/javascript/reference/global_objects/error/tostring/index.html new file mode 100644 index 0000000000..f117af3440 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/error/tostring/index.html @@ -0,0 +1,112 @@ +--- +title: Error.prototype.toString() +slug: Web/JavaScript/Reference/Objets_globaux/Error/toString +tags: + - Error + - JavaScript + - Méthode + - Prototype + - Reference +translation_of: Web/JavaScript/Reference/Global_Objects/Error/toString +--- +
{{JSRef}}
+ +

La méthode toString() renvoie une représentation de l'objet {{jsxref("Error")}} sous la forme d'une chaine de caractères.

+ +

Syntaxe

+ +
e.toString()
+ +

Valeur de retour

+ +

Une chaîne de caractères représentant l'objet {{jsxref("Error")}}.

+ +

Description

+ +

L'objet {{jsxref("Error")}} surcharge la méthode {{jsxref("Object.prototype.toString()")}} héritée par tous les objets. Sa sémantique est la suivante (en partant du principe que {{jsxref("Object")}} et {{jsxref("String")}} ont leurs valeurs originales) :

+ +
Error.prototype.toString = function () {
+  "use strict";
+
+  var obj = Object(this);
+  if (obj !== this)
+    throw new TypeError();
+
+  var name = this.name;
+  name = (name === undefined) ? "Error" : String(name);
+
+  var msg = this.message;
+  msg = (msg === undefined) ? "" : String(msg);
+
+  if (name === "")
+    return msg;
+  if (msg === "")
+    return name;
+
+  return name + ": " + msg;
+};
+
+ +

Exemples

+ +
var e = new Error("Erreur fatale");
+console.log(e.toString()); // "Error: Erreur fatale"
+
+e.name = undefined;
+console.log(e.toString()); // "Error: Erreur fatale"
+
+e.name = "";
+console.log(e.toString()); // "Erreur fatale"
+
+e.message = undefined;
+console.log(e.toString()); // ""
+
+e.name = "salut";
+console.log(e.toString()); // "salut"
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES1')}}{{Spec2('ES1')}}Définition initiale. Implémentée avec JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.11.4.4', 'Error.prototype.toString')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-error.prototype.tostring', 'Error.prototype.toString')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-error.prototype.tostring', 'Error.prototype.toString')}}{{Spec2('ESDraft')}}
+ +

Compatibilité des navigateurs

+ +
+ + +

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

+
+ +

Voir aussi

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