programmation Java (école d'ingénieur) · Chapitre 11 · Application directe du cours
Lire une trace
Exceptions · niveau 1 (application)
Énoncé
Un programme s'arrête sur la trace suivante :
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5
at Notes.maximum(Notes.java:14)
at Notes.bilan(Notes.java:22)
at Notes.main(Notes.java:30)
- Quelle erreur s'est produite, dans quelle méthode, à quelle ligne ?
- Quelle méthode a appelé cette méthode, et d'où a-t-elle été elle-même appelée ?
- La ligne 14 contient
if (t[i] > m) m = t[i];dans une bouclefor. Quelle est très probablement l'erreur dans l'en-tête de cette boucle ?
Corrigé
- Une
ArrayIndexOutOfBoundsException: on a accédé à l'indice d'un tableau de longueur , dont les indices valides sont à . L'erreur est dans la méthodemaximum, ligne 14 du fichierNotes.java. maximuma été appelée parbilan(ligne 22), elle-même appelée parmain(ligne 30).- L'indice atteint la valeur = longueur du tableau : la condition de la boucle est certainement
i <= t.lengthau lieu dei < t.length. C'est l'erreur « d'une case de trop » la plus classique : la boucle doit parcourir .
100 % gratuit
La suite du chapitre est sur Adloun
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.