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 : propriété statique stackTraceLimit

Non standard: Cette fonctionnalité n'est pas standardisée. Nous déconseillons d'utiliser des fonctionnalités non standard en production, car leur prise en charge par les navigateurs est limitée, et elles peuvent être modifiées ou supprimées. Toutefois, elles peuvent constituer une alternative appropriée dans certains cas où aucune option standard n'existe.

Note : Cette fonctionnalité fait partie de l'API de trace de pile (angl.) actuellement non standard de V8. Cependant, pour des raisons de compatibilité, elle est aussi implémentée par JavaScriptCore.

La propriété de donnée statique stackTraceLimit d'une instance de Error indique le nombre maximal de trames de pile capturées par la trace de pile d'une erreur. Elle peut être définie par le code utilisateur pour modifier le comportement du moteur.

En général, lire cette propriété n'est pas très utile, mais vous pouvez la définir à une nouvelle valeur. L'augmenter peut être utile pour le débogage, car cela permet de voir une plus grande partie de la pile d'appels. La diminuer peut améliorer les performances car cela réduit la quantité de pile capturée.

Valeur

Un entier représentant le nombre maximal de trames de pile capturées par la trace de pile d'une erreur.

Attributs de Error : propriété statique stackTraceLimit
ÉcrivableOui
ÉnumérableOui
ConfigurableOui

Description

Comme stackTraceLimit est une propriété statique de Error, vous l'utilisez toujours comme Error.stackTraceLimit, et non comme une propriété d'un objet Error que vous avez créé. Si vous souhaitez personnaliser la trace de pile pour une seule erreur, vous devrez peut-être définir la propriété, créer l'erreur, puis réinitialiser la propriété à sa valeur d'origine.

Exemples

Définir la propriété stackTraceLimit

Ce code peut être exécuté sans risque même dans des environnements qui ne prennent pas en charge Error.stackTraceLimit, car il ne lit pas la propriété, il ne fait que la définir, et les moteurs qui ne la prennent pas en charge ignoreront ce réglage.

js
Error.stackTraceLimit = 2;
const a = () => b();
const b = () => c();
const c = () => d();
const d = () => e();
const e = () => {
  throw new Error("Mon erreur");
};
try {
  a();
} catch (e) {
  console.log(e.stack);
}
// Seulement deux trames dans les moteurs qui le prennent en charge ;
// toutes les trames dans les autres

Spécifications

This feature does not appear to be defined in any specification.

Compatibilité des navigateurs

Voir aussi