Une trace de pile (ou traceback) est une sortie qui montre la pile de méthodes de votre application. Vous en verrez généralement un sur votre terminal lorsque votre application rencontre une erreur.
Comme son nom l'indique, une structure de données de pile stocke les méthodes dans une trace de pile. La méthode où l'exécution du programme commence est en bas de la pile tandis que celle qui produit la trace de la pile est en haut.
Une trace de pile peut être très utile lorsque vous déboguez votre code.
Pourquoi une trace de pile est-elle importante ?
Une trace de pile est un outil de débogage important. Il vous donne des informations détaillées telles que le type d'erreur, la méthode dans laquelle elle s'est produite, la ligne de votre code où elle s'est produite et le chemin du fichier.
Pour un programmeur chevronné, ces informations sont une mine d'or pour comprendre ce qui s'est exactement passé et où.
En tant que programmeur, vous pouvez également demander à votre programme de créer une trace de pile à la demande. Cela peut être particulièrement utile pour la maintenance du code et le dépannage.
Comment générer une trace de pile
Selon la version de votre compilateur, vous obtiendrez très probablement une trace lisible. Un retraçage lisible fournit un texte convivial sur l'erreur, contrairement au retraçage normal. Cela est particulièrement vrai pour les nouveaux compilateurs. Par conséquent, la meilleure façon d'en savoir plus sur les traces de pile est d'en produire une vous-même.
Vous pouvez produire une trace de pile sans avoir d'erreurs dans votre code. Pour ce faire, il vous suffit d'utiliser le dumpStack méthode de la java.lang. Fil de discussion classer. Il affichera toutes les méthodes qui ont été appelées, à partir de celle qui appelle dumpStack. La méthode d'appel sera celle qui se trouve au-dessus de structure de données de la pile.
Voici un exemple de programme qui génère explicitement une trace de pile :
classerStackTraceDemo{
Publiquestatiqueannulerprincipale(Chaîne [] arguments){
journée();
}statiqueannulerjournée(){
heures();
}statiqueannulerheures(){
minutes();
}
statiqueannulerminutes(){
entier un = 24 * 60;
System.out.println (un + " minutes par jour");
Fil de discussion.dumpStack();
}
}
Production:
1440 minutes par jour
Java.lang.Exception: Empilertrace
sur java.base/java.lang. Thread.dumpStack (Thread.java: 138)
àStackTraceDemo.minutes(StackTraceDemo.Java:17)
àStackTraceDemo.heures(StackTraceDemo.Java:11)
àStackTraceDemo.journée(StackTraceDemo.Java:7)
àStackTraceDemo.principale(StackTraceDemo.Java:3)
Dans cette sortie, vous pouvez observer que la trace montre comment le programme a appelé chaque Méthode Java et à quel numéro de ligne dans son code source. La méthode qui a généré la trace de la pile est celle affichée en haut de la pile. La méthode qui a appelé celle-là se trouve sur la ligne en dessous, et ainsi de suite.
Au-delà de la trace de la pile
Par défaut, lorsque votre programme Java rencontre une erreur, il s'arrête et affiche une trace de la pile. Cependant, vous pouvez choisir de gérer ces erreurs avec élégance au lieu d'afficher des messages susceptibles de dérouter les utilisateurs finaux.
Vous pouvez améliorer la gestion des erreurs de votre programme en utilisant un bloc try...catch() pour capturer les exceptions. Il est également important de prendre en compte et de comprendre les différents types d'erreurs que vos programmes peuvent rencontrer.