CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • Dans le bloc catch, interceptez toute Exception avec catch (Exception e).
  • Dans le bloc catch, utilisez la référence à l’objet Exception (e) et la méthode getClass() pour afficher le type (classe) de l’exception interceptée.
  • Utilisez la référence à l’objet Exception (e) et la méthode getMessage() 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éthode printStackTrace().

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
            ____.____();
		}
	}
}
Modifier et exécuter le code