Zgłaszanie i ponowne zgłaszanie wyjątków
Kiedy metoda zgłasza wyjątek, metoda wywołująca musi go obsłużyć. Może to zrobić na dwa sposoby: przechwycić wyjątek blokiem try/catch lub przekazać go dalej. W tym ćwiczeniu zobaczysz, jak metoda wywołująca ponownie zgłasza wyjątek.
To ćwiczenie jest częścią kursu
Typy danych i wyjątki w Javie
Instrukcje do ćwiczenia
- Wywołaj metodę
dineOut()z 9 osobami, co spowoduje zgłoszenie wyjątkuException. - Ponieważ metoda
dineOut()nie obsługuje wyjątku, przekaż go dalej — ponownie zgłośException. - Ponieważ metoda
splitBill()również nie obsługuje wyjątku, zgłośExceptionw jej sygnaturze.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
public class RethrowingExample {
public static void main(String[] args) {
try {
// Trigger the exception by calling dineOut with 9 people
dineOut(____, 50.00);
} catch (Exception e) {
System.out.println("Atempting to divide bill with too many diners");
}
}
// Rethrow the Exception
public static void dineOut(int people, double bill) ____ ____ {
double each = splitBill(bill, people);
System.out.println("Bill for each person: " + each);
}
// Throw the Exception
public static double splitBill(double bill, int people) ____ ____ {
if (people < 3) {
return bill / people;
} else {
throw new Exception();
}
}
}