Académique Documents
Professionnel Documents
Culture Documents
Exercice 1
1. Donner la sortie du programme suivant :
package DS2020
class Test {
public static void main(String[] ARGS) {
try {
System.out .println("AVANT A");
A();
System.out .println("Apres A");
} catch (Exception e) {
System.out .println("MAIN : " + e);
}
finally {
System.out .println("MAIN : FINALLY");
}
}
public static void A() {
try {
System.out .println("AVANT b");
b();
System.out .println("Apres b");
} catch (IndexOutOfBoundsException e) {
System.out .println("A : index hors limite");
}
finally {
System.out .println("A : FINALLY");
}
}
public static void b() {
try {
int TAB[] = new int [4]; TAB[10] = 10 / 3;
}
catch (ArithmeticException e) {
System.out .println("b : Erreur de CALCUL");
}
finally {
System.out .println("b : FINALLY");
}}}
1
public void vérifier() {
try {
System.out .println("Début du bloc try");
int i;
for (i=0;i <= MAX_NB ; i++){
if ((TABLEAU[i]/i) == 2) break;
}
if (i < MAX_NB )
System.out .println("Ordre incorrect!");
}catch(……… e) {
}catch(……… e) {
}}}
a) Compléter chacun des blocs catch pour capturer les exceptions possibles
b) Compléter le code pour afficher le message « Fin de vérification » dans tous les
cas de figures.
Excercice 2
Soit le code java suivant :
import java.util.Scanner;
public class TableauSansExce {
public static void main(String[] args)
{ int t[]=new int[3];
int i=0;
String entree,reponse;
Scanner s=new Scanner(System.in);
do
{System.out.println("Donner un nombre entier :");
entree=s.next();
t[i]=Integer.parseInt(entree);
System.out.println("Taper OK pour continuer");
reponse=s.next();
i++;
}while(reponse.equals("OK"));
for(i=0;i<t.length;i++)
{System.out.print("t["+(i+1)+"]="+t[i]+"\t");}}}
Etant donné la hiérarchie des sous-classes de la classe Exception :
o class java.lang.Exception
o class java.lang.ClassNotFoundException
o class java.lang.IOException
o class java.lang.RuntimeException
o class java.lang.IllegalArgumentException
o class java.lang. NumberFormatException
o class java.lang.IndexOutOfBoundsException
o class java.lang.ArrayIndexOutOfBoundsException
o class java.lang.NegativeArraySizeException
2
1. Quels sont les résultats fournis par le programme, ci-dessus, dans les cas
suivants. S’il y a eu des exceptions, il faut préciser leurs classes.
OK 19 OK
Donner un nombre entier : Taper OK pour Donner un nombre entier :
continuer
5 8
Ok
Taper OK pour continuer Taper OK pour continuer
OK OK
Donner un nombre entier Donner un nombre entier
:20 :K01
3. En utilisant les délimiteurs de blocs try et catch, ajouter le code nécessaire pour prévoir
une gestion des exceptions relative aux exceptions levées dans la question 1. Le
traitement des exceptions est réduit à l’affichage du message contenu dans l’objet
exception.
Excercice 3
Soit une description partielle d’une hiérarchie d’exceptions qui pourront être levées durant
des opérations E/S sur des fichiers.
Exception
+----IOException
+-----FileNotFoundException
Soit la méthode « X » qui est supposée ouvrir un fichier à partir de son nom pour lire son
contenu. Sachant que la méthode « X » n’a aucun bloc « try-catch », dites si les options
suivantes sont correctes ou incorrectes, tout en expliquant votre choix de réponse.
3
1) La méthode « X » doit être déclarée comme levant l’exception « IOException » ou bien
« Exception ».
3) N’importe quelle méthode faisant appel à la méthode « X » doit utiliser « try-catch » pour
Exercice 4
Exercice 5
1. Soit le programme suivant (On suppose que la classe Client est déjà définie et
qu’elle n’a aucun constructeur) :
4
2. Soient la classe Date suivante :
class Date {
int jour; int mois; int annee;
}
Modifiez le constructeur de cette classe de manière à ce qu'il lève et
propage une nouvelle exception nommée DateException dans le cas où
le jour ou le mois ou l'année ne correspondent pas à une date valide (on
supposera que les mois ont tous 30 jours) (1.5 Points)