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 | |
|---|---|
| Écrivable | Oui |
| Énumérable | Oui |
| Configurable | Oui |
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.
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
- La propriété
Error.prototype.stack - La méthode
Error.captureStackTrace() - L'API de trace de pile (angl.) dans la documentation V8