Objet Exception
Il n’est pas rare qu’un morceau de code lève plusieurs exceptions. Une manière de gérer cette situation consiste à intercepter toutes les exceptions avec try/catch, puis à utiliser l’objet Exception pour identifier le problème survenu et afficher des informations utiles pour le débogage.
Ici, vous allez de nouveau modifier l’application SplitTheBill pour catch une Exception générique et exploiter les données de l’objet Exception afin de comprendre la cause du problème. Les objets Exception contiennent de nombreuses informations utiles, notamment la trace des méthodes ayant mené au problème.
Cet exercice fait partie du cours
Types de données et exceptions en Java
Instructions
- Dans le bloc catch, interceptez toute
Exceptionaveccatch (Exception e). - Dans le bloc
catch, utilisez la référence à l’objetException(e) et la méthodegetClass()pour afficher le type (classe) de l’exception interceptée. - Utilisez la référence à l’objet
Exception(e) et la méthodegetMessage()pour afficher le message de l’exception. - Affichez la « stack trace » vers le flux de sortie en utilisant la référence à l’objet
Exception(e) et la méthodeprintStackTrace().
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
class SplitTheBill {
public static void main(String[] args) {
BigDecimal bill = new BigDecimal(125.50);
computeEachBill(bill, 5);
computeEachBill(bill, 0);
}
public static void computeEachBill(BigDecimal bill, int people) {
try {
BigDecimal numPeople = new BigDecimal(people);
BigDecimal individualBill = bill.divide(numPeople);
System.out.println("Bill for each person is: " + individualBill);
// Catch any exception
} catch (____ ____) {
System.out.println("You didn't provide a positive number of people to split the bill among.");
// Print the type (class) of exception
System.out.println("Type of exception: " + ____.____());
// Print the exception message
System.out.println(____.____());
// Print the stack trace
____.____();
}
}
}