Lire une trace de pile
Lire une trace de pile Java : type et message de l'exception, cadres du plus récent au plus ancien, fichier et numéro de ligne, cadres de bibliothèque à sauter et chaîne Caused by.
- 23 cartes
- 5 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Mises en situation
- Comprendre
Quelques cartes du deck
Trace de pile : de quoi s'agit-il ?
Voir la réponse
Liste affichée quand une exception n'est pas attrapée : les appels en cours à l'instant de l'erreur, du plus récent au plus ancien, chacun avec son fichier et sa ligne.
Elle répond à deux questions : où l'erreur a-t-elle été levée (première ligne
at) et par quel chemin le programme y est-il arrivé (les lignes suivantes).Cette trace vient du projet fr.iut. Quelle ligne de son propre code faut-il ouvrir en premier ?
```text
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 2 out of bounds for length 2
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266)
at java.base/java.util.Objects.checkIndex(Objects.java:361)
at java.base/java.util.ArrayList.get(ArrayList.java:427)
at fr.iut.Panier.total(Panier.java:16)
at fr.iut.Panier.traiter(Panier.java:29)
at fr.iut.Panier.main(Panier.java:25)`Panier.java:16ArrayList.java:427Preconditions.java:64Panier.java:25
Voir la réponse
Panier.java:16Les cadres
java.base/…appartiennent à la bibliothèque Java, qui a réagi correctement à un mauvais appel. Le premier cadre defr.iutestPanier.total, ligne 16 : c'est là que l'index fautif a été demandé.Dans une trace Java, la ligne … introduit l'exception qui a provoqué celle du dessus.
Voir la réponse
Dans une trace Java, la ligne Caused by introduit l'exception qui a provoqué celle du dessus.
Une exception peut en envelopper une autre : le code a attrapé l'erreur d'origine puis en a levé une nouvelle en la gardant comme cause.
Cadre d'appel : de quoi s'agit-il ?
Voir la réponse
Une ligne
at …de la trace : une méthode en cours d'exécution, avec le fichier source et la ligne où elle en était.at fr.iut.Panier.total(Panier.java:16)se lit : classefr.iut.Panier, méthodetotal, fichierPanier.java, ligne 16.Une trace commence par cinq cadres de
java.utiletjdk.internalavant le premier cadre de ton projet. Quelle démarche est la bonne ?- Ouvrir le tout premier cadre : le défaut est dans le code de la bibliothèque
- Ouvrir le dernier cadre, car seul le point de départ explique l'erreur
- Chercher la dernière version de Java, car l'exception vient de la bibliothèque
- Aller au premier cadre de ton projet : ton appel a causé l'erreur
Voir la réponse
Aller au premier cadre de ton projet : ton appel a causé l'erreur
Le code de la bibliothèque est très largement éprouvé : lorsqu'il lève une exception, c'est presque toujours parce qu'on lui a passé une mauvaise valeur. Le premier cadre de ton code est le dernier endroit où tu as la main.