Adloun

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 boucle for. 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éthode maximum, ligne 14 du fichier Notes.java.
  • maximum a été appelée par bilan (ligne 22), elle-même appelée par main (ligne 30).
  • L'indice atteint la valeur = longueur du tableau : la condition de la boucle est certainement i <= t.length au lieu de i < 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

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →