Sujets abordés et exemples - semaine 11
Exceptions
Les exceptions sont des erreurs qui sont retournées lorsqu’une méthode ne peut
poursuivre son exécution normale.
public class ProgrammeExceptions
{
public static void main(String[] args) {
int nombre;
System.out.print("Entrez un nombre: ");
nombre = Clavier.lireInt();
}
}
Si l’usager tape un entier, Clavier.lireInt() retourne un résultat correct. Par contre, si
un caractère est entré, Clavier.lireInt()interrompt son exécution, et retourne une erreur
au lieu d’un résultat de type int. Cette erreur est une exception. Si elle n’est pas traitée,
l’exception entraîne la terminaison du programme. Dans l’exemple, le message suivant
est affiché :
java.lang.NumberFormatException: For input string: "r"
at
java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:468)
at java.lang.Integer.parseInt(Integer.java:518)
at Clavier.lireInt(Clavier.java:227)
at ProgrammeExceptions.main(ProgrammeExceptions.java:12)
Le message indique que l’exception est de type java.lang.NumberFormatException (une
exception prédéfinie dans le langage) survenue suite à une erreur dans la méthode
java.lang.Integer.parseInt de la classe Integer, appelée par la méthode lireInt à la
ligne 227 de la classe Clavier, elle-même appelée dans la méthode main de notre classe,
ProgrammeException, à la ligne 12.
En général, le plus simple est de commencer par le bas (ici ProgrammeException, et de
retracer le chemin de l’erreur dans notre code (par exemple, on s’arrêterait de chercher à
la classe Clavier) jusqu’à ce qu’on arrive à trouver la source de l’erreur.
Certaines erreurs, comme celle dans l’exemple, dépendent de circonstances hors du
contrôle du programmeur (on ne peut prévoir ce que l’utilisateur va taper). Dans ces
situations, on va prévoir une manière de gérer l’erreur pour que le programme ne plante
pas.
/**
* Exemple de gestion d'exceptions
*
* @author Stéphane Lévesque
*/
public class ProgrammeExceptions
{