LoslegenKostenlos loslegen

Exception-Objekt

Es ist nicht ungewöhnlich, dass ein Codeabschnitt mehrere Ausnahmen auslöst. Eine Möglichkeit, damit umzugehen, ist, alle Ausnahmen mit try-catch abzufangen und dann das Exception-Objekt zu nutzen, um festzustellen, welches Problem aufgetreten ist, und Informationen aus der Exception auszugeben, um den Fehler zu debuggen.

Hier passt du die Anwendung SplitTheBill erneut an, um eine generische Exception zu catchen und Daten aus dem Exception-Objekt zu verwenden, um die Ursache des Problems zu verstehen. Exception-Objekte enthalten viele nützliche Informationen, darunter eine Rückverfolgung der Methoden, die zum Problem geführt haben.

Diese Übung ist Teil des Kurses

Datentypen und Exceptions in Java

Kurs anzeigen

Anleitung zur Übung

  • Fange im catch-Block beliebige Exceptions mit catch (Exception e) ab.
  • Verwende im catch-Block das Exception-Objekt bzw. die Objekt-Referenz (e) und die Methode getClass(), um den Typ (die Klasse) der abgefangenen Ausnahme anzuzeigen.
  • Verwende die Objekt-Referenz (e) und die Methode getMessage(), um die Meldung der Ausnahme auszugeben.
  • Gib den „Stack Trace“ in den Ausgabestrom aus, indem du die Objekt-Referenz (e) und die Methode printStackTrace() verwendest.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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
            ____.____();
		}
	}
}
Code bearbeiten und ausführen