| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Error/stack | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
Non standard: Cette fonctionnalit n'est pas standardise. Nous dconseillons d'utiliser des fonctionnalits non standard en production, car leur prise en charge par les navigateurs est limite, et elles peuvent tre modifies ou supprimes. Toutefois, elles peuvent constituer une alternative approprie dans certains cas o aucune option standard n'existe.
Note :
La proprit stack est de facto implmente par tous les principaux moteurs JavaScript, et le comit de standardisation JavaScript envisage de la standardiser (angl.). Vous ne pouvez pas vous fier au contenu prcis de la chane de la pile cause des incohrences d'implmentation, mais vous pouvez gnralement supposer qu'elle existe et l'utiliser des fins de dbogage.
La proprit non standard stack d'une instance de Error fournit une trace des fonctions appeles, dans quel ordre, depuis quelle ligne et quel fichier, et avec quels arguments. La chane de la pile va des appels les plus rcents aux plus anciens, jusqu' l'appel initial dans la porte globale.
Une chane de caractres.
Comme la proprit stack n'est pas standard, les implmentations diffrent quant l'endroit o elle est installe.
Error.prototype.Error, avec le descripteur :Attributs de Error : proprit stack | |
|---|---|
| crivable | Oui |
| numrable | Non |
| Configurable | Oui |
Chaque moteur JavaScript utilise son propre format pour les traces de pile, mais ils sont assez cohrents dans leur structure gnrale. Chaque implmentation utilise une ligne distincte dans la pile pour reprsenter chaque appel de fonction. L'appel qui a directement caus l'erreur est plac en haut, et l'appel qui a dmarr toute la chane d'appels est plac en bas. Voici quelques exemples de traces de pile :
function toto() {
tata();
}
function tata() {
truc();
}
function truc() {
console.log(new Error().stack);
}
toto();
#### JavaScriptCore
truc@filename.js:10:24
tata@filename.js:6:6
toto@filename.js:2:6
global code@filename.js:13:4
#### SpiderMonkey
truc@filename.js:10:15
tata@filename.js:6:3
toto@filename.js:2:3
@filename.js:13:1
#### V8
Error
at truc (filename.js:10:15)
at tata (filename.js:6:3)
at toto (filename.js:2:3)
at filename.js:13:1
V8 fournit l'API de trace de pile (angl.) non standard pour personnaliser la trace de pile, incluant Error.captureStackTrace(), Error.stackTraceLimit et Error.prepareStackTrace(). D'autres moteurs prennent en charge cette API des degrs divers.
Diffrents moteurs dfinissent cette valeur des moments diffrents. La plupart des moteurs modernes la dfinissent lors de la cration de l'objet Error. Cela signifie que vous pouvez obtenir la pile complte d'appels dans une fonction en utilisant ce qui suit :
function toto() {
console.log(new Error().stack);
}
Sans avoir lever une erreur puis l'intercepter.
Les trames de pile peuvent aussi provenir d'autres lments que des appels de fonction explicites. Par exemple, les gestionnaires d'vnements, les tches temporises et les gestionnaires de promesses dmarrent tous leur propre chane d'appels. Le code source l'intrieur des appels eval() et au constructeur Function apparat aussi dans la pile :
console.log(new Function("return new Error('chec de la fonction')")().stack);
console.log("====");
console.log(eval(`new Error("chec de l'valuation")`).stack);
#### JavaScriptCore
anonymous@
global code@filename.js:1:65
====
eval code@
eval@[native code]
global code@filename.js:3:17
#### SpiderMonkey
anonymous@filename.js line 1 > Function:1:8
@filename.js:1:65
====
@filename.js line 3 > eval:1:1
@filename.js:3:13
#### V8
Error: chec de la fonction
at eval (eval at <anonymous> (filename.js:1:13), <anonymous>:1:8)
at filename.js:1:65
====
Error: chec de l'valuation
at eval (eval at <anonymous> (filename.js:3:13), <anonymous>:1:1)
at filename.js:3:13
Dans Firefox, vous pouvez utiliser la directive //# sourceURL pour nommer une source d'valuation. Voir la documentation Firefox Dboguer des sources values (angl.).
stackLe script suivant montre comment utiliser la proprit stack pour afficher une trace de pile dans la fentre de votre navigateur. Vous pouvez l'utiliser pour vrifier quoi ressemble la structure de pile de votre navigateur.
<div id="output"></div>
#output {
white-space: pre;
font-family: monospace;
}
function trace() {
throw new Error("chec de trace()");
}
function b() {
trace();
}
function a() {
b(3, 4, "\n\n", undefined, {});
}
try {
a("premier appel, premier argument");
} catch (e) {
document.getElementById("output").textContent = e.stack;
}
Ne fait partie d'aucune spcification.
Cette page a t modifie le 21 fvr. 2026 par les contributeurices du MDN.
ErrorObject/FunctionObject.prototype.__defineGetter__()Object.prototype.__defineSetter__()Object.prototype.__lookupGetter__()Object.prototype.__lookupSetter__()Object.prototype.hasOwnProperty()Object.prototype.isPrototypeOf()Object.prototype.propertyIsEnumerable()Object.prototype.toLocaleString()Object.prototype.toString()Object.prototype.valueOf()AggregateErrorEvalErrorInternalErrorRangeErrorReferenceErrorSyntaxErrorTypeErrorURIErrorCertaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |