Académique Documents
Professionnel Documents
Culture Documents
Une méthode qui désire gérer ce genre de problèmes peut indiquer qu’elle est disposée à
intercepter l’exception (instruction throws).
Page 1/5
Session Hiver 2023
Erreurs et Exceptions :
• Traiter les exceptions levées : les mots clés try, catch et finally :
• Intercepter une exception : le mot clé throws : Si une méthode est susceptible de lever
une exception et si elle ne peut pas la traiter, elle se doit de prévenir le système qu'elle
relaye cette tâche. Pour ce faire, on utilise le mot clé throws dans la définition de la
méthode. Ce mot clé permet d'avertir le système qu'une certaine catégorie d'exception
ne sera pas traitée en local (dans l'exemple suivant, l'ensemble des exceptions liées aux
entrées/sorties).
Page 2/5
Session Hiver 2023
Java offre au programmeur la possibilité de définir ses propres exceptions. Ces exceptions
doivent hériter d’une autre exception de la hiérarchie des classes Java. Le programmeur doit
lui-même lever ses exceptions. Pour se faire Java met à sa disposition le mot-clé throw (à ne
pas confondre avec throws). Pour le reste (try, catch, finally) le mécanisme est identique.
Exercices :
Exercice 1 :
Réaliser une classe EntNat permettant de manipuler des entiers naturels (positifs ou nuls).
Pour l’instant, cette classe disposera simplement :
• d’un constructeur à un argument de type int qui générera une exception de type
ErrConst (type classe à définir) lorsque la valeur reçue ne conviendra pas,
• d’une méthode getN fournissant sous forme d’un int, la valeur encapsulée dans un
objet de type EntNat.
Exercice 2 :
1. Définir la classe ExceptionNegative qui représente une exception. Cette classe comporte un seul
attribut de type entier nommé valeur et un constructeur avec un paramètre entier (permettant
d’initialiser l’attribut valeur).
Page 3/5
Session Hiver 2023
int r=1;
return r;
}
}
}
Exercice 3 :
Adapter la classe EntNat de l’exercice et le programme d’utilisation de manière à disposer
dans le gestionnaire d’exception du type ErrConst de la valeur fournie à tort au constructeur.
Exercice 4 :
Quels résultats fournit ce programme ?
Page 4/5
Session Hiver 2023
}
}
}
public class Chemin1
{
public static void main (String args[])
{ try
{ A a = new A(1) ;
System.out.println ("apres creation a(1)") ;
}
catch (Erreur e)
{ System.out.println ("** exception Erreur " + e.num) ;
}
System.out.println ("suite main") ;
try
{ A b = new A(1) ;
System.out.println ("apres creation b(1)") ;
}
catch (Erreur_d e)
{ System.out.println ("** exception Erreur_d " + e.num + " " + e.code) ;
}
catch (Erreur e)
{ System.out.println ("** exception Erreur " + e.num) ;
}
}
}
Que se passe-t-il si l’on inverse l’ordre des deux gestionnaires dans le second bloc try ?
Page 5/5