CommencezCommencez gratuitement

Objet Exception

Il n'est pas rare qu'un bout de code lance plusieurs exceptions. Une façon de gérer cette situation est d'encercler le code d'un try-catch qui capte toutes les exceptions, puis d'utiliser l'objet Exception pour déterminer ce qui s'est produit et afficher des renseignements provenant de Exception afin de déboguer le problème.

Ici, vous allez modifier de nouveau l'application SplitTheBill pour catch une Exception générique et utiliser les données de l'objet Exception afin de comprendre la cause du problème. Les objets Exception contiennent beaucoup d'informations utiles, y compris une trace des méthodes ayant mené au problème.

Cette activité fait partie du cours

Types de données et exceptions en Java

Voir le cours

Instructions de l’exercice

  • Dans le bloc catch, interceptez toute Exception avec catch (Exception e).
  • Utilisez l'objet Exception, sa référence (e) et la méthode getClass() dans le bloc catch 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.
  • Imprimez la « pile d'appels » vers le flux de sortie à l'aide de la référence à l'objet Exception (e) et de la méthode printStackTrace().

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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