Exceptions en Java
Gardez un petit tableau int nommé slots qui contient 2 et 4. Affichez slots[0] pour que l'écran montre 2. Puis apprenez ce qui se passe si vous demandez slots[5] à la place : Java lève ArrayIndexOutOfBoundsException et le programme s'arrête. Compilez d'abord Alarm.java et lancez java Alarm pour le fichier sûr. Voir un arrêt à l'exécution dû à une règle cassée — pas à un point-virgule manquant — est ce que cette page enseigne. Laissez try et catch pour la page suivante.
Une lecture sûre qui se termine
Une exception est la façon dont Java dit qu'une règle a cassé pendant l'exécution. Jusqu'ici la plupart des démos affichaient une ligne claire et se terminaient tranquillement. Cette page garde d'abord une démo calme, puis une démo qui s'arrête avec un nom d'exception.
Ouvrez Alarm.java. Gardez le nom de classe publique Alarm pour qu'il corresponde au nom de fichier. Supprimez les restes de ArrayList<Integer>, nums.add(9), les démos Crate et tout for-each sur oak et pine. Supprimez aussi tout Scanner ou nextLine. Le programme ne doit pas attendre de saisie. Cette page n'a besoin d'aucune ligne import.
Dans main, stockez deux entiers :
int[] slots = {2, 4};
Puis affichez le premier créneau :
System.out.println(slots[0]);
Les numéros de créneau commencent à zéro. Le créneau zéro contient 2. Enregistrez avant de compiler.
public class Alarm {
public static void main(String[] args) {
int[] slots = {2, 4};
System.out.println(slots[0]);
}
}
Depuis le dossier qui contient Alarm.java, lancez javac Alarm.java. Quand parenthèses, accolades et points-virgules concordent, javac n'écrit aucune ligne de son côté. Puis lancez java Alarm — pas java Alarm.java. Omettez l'extension .java de la commande d'exécution.
Le programme doit afficher une ligne et s'arrêter : 2. Il ne doit pas vous demander de taper. Si le terminal attend une entrée clavier, un appel nextLine d'un ancien exercice reste dans un fichier. Supprimez cet appel et gardez le tableau plus System.out.println(slots[0]);.
Parcourez l'exécution une fois. Java démarre à Alarm.main. Le tableau contient deux valeurs. L'affichage lit le créneau zéro. L'écran montre 2. Rien d'autre ne doit s'afficher. Si vous voyez 9, une démo wrappers Crate tourne encore — passez à java Alarm. Si vous voyez 4, vous avez affiché slots[1] ; le fichier d'enseignement sûr garde slots[0].
Un mauvais index qui lève
Changez seulement la ligne d'affichage pour demander un créneau jamais écrit : slots[5]. Le tableau n'a toujours que deux créneaux. À l'exécution, Java lève une exception au lieu d'afficher un nombre.
public class Alarm {
public static void main(String[] args) {
int[] slots = {2, 4};
System.out.println(slots[5]);
}
}
Compilez avec javac Alarm.java, puis lancez java Alarm. Cette fois le programme n'affiche pas 2. Le terminal montre un rapport d'erreur qui nomme ArrayIndexOutOfBoundsException. L'exécution s'arrête. Les lignes que vous imaginiez après cet affichage ne s'exécutent pas, car l'exception a déjà arrêté le programme. Remarquez que javac peut encore réussir — le mauvais index est un problème d'exécution, pas un point-virgule manquant.
Cet arrêt est la leçon. Vous ne corrigez pas l'index sur cette page avec try. Vous apprenez à reconnaître qu'une règle cassée à l'exécution devient une exception et termine le chemin normal. Lisez le nom de l'exception dans le rapport. Gardez le fichier mauvais index seulement pour voir cet arrêt. Préférez le fichier sûr quand vous voulez un écran calme avec 2. Si vous remettez le mauvais index à slots[0], l'écran calme revient ; cela prouve que l'arrêt venait de l'index, pas du nom de classe Alarm.
Ne traitez pas le rapport de pile comme un résultat println normal. Java vous dit ce qui a mal tourné. L'orthographe du type d'exception compte quand vous en parlez : ArrayIndexOutOfBoundsException. Dire seulement « erreur » est trop vague pour cette leçon — gardez le nom complet du type quand vous décrivez l'arrêt.
Le reste wrappers n'est pas ce crash
Un troisième fichier vous rappelle la liste Integer de la page précédente. Cette démo affiche 9 et se termine. Ce n'est pas l'histoire de l'exception.
import java.util.ArrayList;
public class Alarm {
public static void main(String[] args) {
ArrayList<Integer> nums = new ArrayList<Integer>();
nums.add(9);
System.out.println(nums.get(0));
}
}
Ce contraste affiche 9 et se termine sans lever. Utilisez-le seulement pour séparer un chemin wrappers terminé du chemin Alarm à mauvais index. Pour cette leçon sur les exceptions, la paire d'enseignement est l'affichage sûr slots[0] et l'affichage qui lève slots[5]. N'inventez aucun try ni catch autour des démos de tableau sur cette page.
Comparé aux tableaux et aux wrappers
Sur la page des tableaux vous restiez dans les créneaux écrits. Cette page sort volontairement pour que vous voyiez l'exception. Sur la page wrappers une liste d'Integer affichait 9 sans crash. Cela reste valable comme historique. Pour cette page gardez Alarm et l'histoire de l'index du tableau.
D'autres exceptions existent — par exemple diviser par zéro peut lever ArithmeticException. Cette page garde un nom clair : ArrayIndexOutOfBoundsException d'un mauvais index. Vous n'avez pas besoin aujourd'hui d'un catalogue de chaque type d'exception. Un exemple solide suffit avant que la page suivante enseigne la gestion.
Quand d'anciens fichiers Crate.java restent à proximité, laissez-les ou supprimez-les seulement s'ils embrouillent quelle classe vous lancez. Lancez java Alarm après avoir compilé le fichier de la démo voulue. Changez de fichier exprès pour que l'affichage sûr et l'affichage qui lève ne se mélangent pas dans un seul main pendant l'étude.
Ce qui reste pour try et catch
Cette page montre qu'une exception peut arrêter un programme à l'exécution. La page suivante présente try et catch pour gérer certains problèmes sans terminer toute l'exécution. Restez ici à reconnaître l'arrêt et le nom de l'exception. N'inventez pas encore un bloc catch comme exigence sur cette page.
Avant try et catch
Vous pouvez afficher slots[0] depuis {2, 4} et voir 2. Vous pouvez afficher slots[5] et voir l'exécution s'arrêter avec ArrayIndexOutOfBoundsException. Compilez Alarm.java et lancez java Alarm à tour de rôle pour chaque démo conservée. L'exception a nommé clairement la règle cassée. La page suivante est try et catch, où un chemin géré peut continuer après certaines erreurs.
Gardez la démo sûre pour un écran calme. Gardez le mauvais index pour voir l'arrêt. Gardez try hors de cette page. Ces trois habitudes sont le point de contrôle avant d'avancer. Quand vous pouvez nommer ArrayIndexOutOfBoundsException après l'exécution mauvais index de java Alarm, les exceptions ont fait leur travail pour cette leçon et vous êtes prêt pour le sujet suivant sur la gestion.
🧠 Testez Vos Connaissances
Testez Vos Connaissances
Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet
📝 Instructions
- Lisez chaque question attentivement
- Sélectionnez la meilleure réponse pour chaque question
- Vous pouvez refaire le quiz autant de fois que vous le souhaitez
- Votre progression sera affichée en haut