Page 1
TP N° 9 : Exceptions
Langage JAVA
Exercice : saisie correcte
On veut écrire la fonction saisieCorrecte qui permet de saisir correctement un entier. Si
l'utilisateur saisit une donnée dont le format n'est pas celui d'un entier, le programme lève
l'exception InputMismatchException.
Question 1
La fonction devra traiter cette erreur en fournissant une solution alternative. Un message
d'erreur sera affiché avec la proposition d'effectuer une nouvelle saisie.
Note : la classe InputMismatchException appartient au package java.util.
import
java.util.InputMismatchException;
import java.util.Scanner;
public class Test {
public static void saisieCorrect() throws InputMismatchException{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(n);
}
public static void main(String[] args) {
do{
try {
System.out.println("Veuillez saisir une entier :");
saisieCorrect();
break;
} catch (InputMismatchException e) {
System.out.println("erreur de saisi");
}
}while(true);
}
}
Page 2
Question 2
L'entier saisi doit être impérativement supérieur à 10.
On demande donc de créer une classe d'exception adaptée à cette erreur, puis de modifier
le programme afin de traiter ce cas d'erreur.
Note : On aurait pu utiliser l'exception prédéfinie IllegalArgumentException pour vérifier que
l'entier saisi est supérieur à 10.
Solution 2 :
import
java.util.InputMismatchException;
import java.util.Scanner;
public class Test {
public static void saisieCorrect() throws InputMismatchException, IllegalArgumentException{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
if(n < 10) throw new IllegalArgumentException();
System.out.println(n);
}
public static void main(String[] args) {
do{
try {
System.out.println("Veuillez saisir une entier :");
saisieCorrect();
break;
} catch (InputMismatchException e) {
System.out.println("Saisi incorrect");
} catch (IllegalArgumentException e) {
System.out.println("le nombre saisi < 10");
}
}while(true);
}
}
public
class
MonException
extends
Exception {
private String msg = "La valeur est infénieure à 10";
public MonException() {
}
public String getMsg() {
return msg;
}
}
Page 3
import
java.util.InputMismatchException;
import java.util.Scanner;
public class Test {
public static void saisieCorrect() throws InputMismatchException, MonException{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
if(n < 10) throw new MonException();
System.out.println(n);
}
public static void main(String[] args) {
do{
try {
System.out.println("Veuillez saisir une entier :");
saisieCorrect();
break;
} catch (InputMismatchException e) {
System.out.println("Format incorrecte");
} catch (MonException e) {
System.out.println(e.getMsg());
}
}while(true);
}
}
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !