Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Wywołaj metodę dineOut() z 9 osobami, co spowoduje zgłoszenie wyjątku Exception.
  • 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ś Exception w 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();
		}
	}
}
Edytuj i uruchom kod