Exercice 2- L'âge du capitaine
1- Écrire une méthode getAgeCap() qui demande l'âge du capitaine. Cet âge doit
être compris entre 18 et 65 ans et doit être un entier sous peine de lever
une AgeCapException. Vous implementerez cette exception pour qu'elle renvoie
une description explicite du type "[proposition] ans n'est pas un âge valide". Le
programme devra également être en mesure de capturer tout type d'exception autre
queAgeCapException.
2- Dans un premier temps, la méthode getAgeCap() propagera l'exception à la
méthode appelante qui la traitera.
3- Modifier le programme pour que ce soit la méthode getAgeCap() qui traite
l'exception.
4- Modifier encore le programme pour que getAgeCap() traite l'exception mais lève
une seconde exception de type Exception pour signaler à la méthode appelante
qu'une erreur s'est produite et que cette dernière comptabilise le nombre d'essais
infructueux et l'affiche. Le programme demandera l'âge du capitaine en boucle
infinie.
solution:
1-:ecrire une class AgeCapException herite de class Exception qui contient message d'erreure :
public class AgeCapException extends Exception {
AgeCapException(int age)
{
System.out.println(age+" ans non valide ");
}
}
1- Écrire une méthode getAgeCap() qui demande l'âge du capitaine. Cet âge doit
être compris entre 18 et 65 ans et doit être un entier sous peine de lever
une AgeCapException. Vous implementerez cette exception pour qu'elle renvoie
une description explicite du type "[proposition] ans n'est pas un âge valide". Le
programme devra également être en mesure de capturer tout type d'exception autre
queAgeCapException.
2- Dans un premier temps, la méthode getAgeCap() propagera l'exception à la
méthode appelante qui la traitera.
3- Modifier le programme pour que ce soit la méthode getAgeCap() qui traite
l'exception.
4- Modifier encore le programme pour que getAgeCap() traite l'exception mais lève
une seconde exception de type Exception pour signaler à la méthode appelante
qu'une erreur s'est produite et que cette dernière comptabilise le nombre d'essais
infructueux et l'affiche. Le programme demandera l'âge du capitaine en boucle
infinie.
solution:
1-:ecrire une class AgeCapException herite de class Exception qui contient message d'erreure :
public class AgeCapException extends Exception {
AgeCapException(int age)
{
System.out.println(age+" ans non valide ");
}
}
import java.util.Scanner;
public class Test {
static Scanner sc=new Scanner(System.in);
public static void main(String[] args) {
try{
int age=GetAgeCap();
System.out.println(age+" ans , c'est l'age de capitane");
}
catch(AgeCapException e){
}
catch(Exception e){
//e.printStackTrace();
System.out.println("il faut entrer un entier");
}
System.out.println("ok termine");
}
public static int GetAgeCap()throws AgeCapException,Exception
{
System.out.println("entrer l'age de capitane :");
int age=sc.nextInt();
if(age<18||age>65) throw new AgeCapException(age);
return age;
}
}
2:autre methode: