Programmation Java Avancée
TD – Traitement des exceptions
Exercice 1
Q1.1. La méthode parseInt de la classe Integer permet de convertir une chaine de caractère en
un entier est spécifiée de la manière suivante :
public static int parseInt(String s) throws NumberFormatException
Paramètre: s – une chaine de caractère contenant la représentation du nombre à convertir
Retourne : retourne la valeur décimale de la chaine entrée comme paramètre.
Throws: NumberFormatException – si la chaine n’est pas convertible en un entier.
Utiliser cette méthode pour faire la somme de tous les entiers donnés en argument de la ligne
de commande, les autres arguments étant ignorés.
Q.1.2. Écrire un programme dans lequel on demande à l’utilisateur de saisir un entier en gérant
l’exception dans le cas où il ne saisit pas un entier correctement en lui demandant de refaire la
saisie jusqu’à ce que la saisie soit correcte. La méthode NextLine() de la classe Scanner lance
une exception InputMismatchException si l’entrée récupérée ne correspond pas au modèle
du type attendu (un entier dans cet exercice).
Q.1.3. Ecrire un programme qui demande à l’utilisateur de saisir sa date d’anniversaire, génère
une exception si la date n’est pas saisie au bon format et une autre exception si la date
d’anniversaire est supérieure à la date d’aujourd’hui.
La saisie d’une date se fait de la façon suivante :
Saisie d’une chaine de caractère au clavier, choix du format (SimpleDateFormat f = new
SimpleDateFormat("dd-MM-yyyy"), ensuite un parse vers ce format;
La date d’aujourd’hui est Date xx=new Date();
Son affichage vers un format particulier se fait par System.out.println(f.format(auj));
Exercice 2
Ecrire une classe appartement avec deux propriétés numAppart et Adresse et qui propage des
exceptions de type IllegalArgumentException dans son constructeur lorsque le numAppart est
négatif et l’adresse est null. Tester votre classe dans une méthode main et afficher les erreurs
éventuelles lors de l’appel du constructeur.
Exercice 3 : Création des exceptions
Ecrire une classe Pile qui implémente une pile d’objets avec un tableau de taille fixe. On
définira pour cela deux exceptions PilePleine et pileVide. On utilisera pour écrire les méthodes
ci-dessous, l’exception ArrayOutOfBoundsException qui indique qu’on a tenté d’accéder à une
case non définie d’un tableau.
Ines THABET Page 1
Programmation Java Avancée
public void empiler(Object o);
public Object depiler() ;
public Object sommet(); // retourne l’objet au sommet de la pile
public void depilerTout() ; // permettant de vider toute la pile
Les champs de la classe seront :
private final static int taille = 10;
private Object [] pile;
private int pos;
Ecrire une méthode main qui empile les arguments de la ligne de commande (tant que c’est
possible) et qui les réaffiche dans l’ordre inverse de leur insertion.
Par exemple : > java Pile 1 2 3 4 5 6 7 8 9 10 11 12 13 10
987654321
Ines THABET Page 2