Zacznij terazZacznij za darmo

RuntimeException

RuntimeException nie wymaga bloków try/catch w kodzie – zazwyczaj można jej uniknąć, stosując dobre praktyki programistyczne. Jeśli jednak błąd nie zostanie wykryty, a RuntimeException pozostanie nieprzechwycony, aplikacja zakończy działanie z błędem i wyświetli komunikat, który użytkownik może mieć trudność ze zrozumieniem. W tym ćwiczeniu zobaczysz, co się dzieje, gdy nie przechwycisz potencjalnego RuntimeException, oraz co się zmienia, gdy użyjesz bloku try/catch.

To ćwiczenie jest częścią kursu

Typy danych i wyjątki w Javie

Zobacz kurs

Instrukcje do ćwiczenia

  • Przejrzyj metody withoutTryCatch() i withTryCatch() w tej aplikacji i zwróć uwagę na różnicę między nimi.
  • Uruchom aplikację bez zmian – spowoduje to wywołanie metody withoutTryCatch(), która wyrzuca RuntimeException.
  • Zakomentuj linię 5, odkomentuj linię 7, a następnie uruchom aplikację ponownie – tym razem wykona się metoda withTryCatch(), która obsługuje RuntimeException.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

public class RuntimeExceptionHandling {

	public static void main(String[] args) {
		// Comment out this line
		withoutTryCatch();
		// Uncomment this line
		// withTryCatch();
	}

	public static void withoutTryCatch() {
		String[] mounts = { "Everest", "K2", "Kangchenjunga", "Lhotse" };
		String selectedMount = mounts[4];
		System.out.println("Selected item is: " + selectedMount);
	}

	public static void withTryCatch() {
		try {
			String[] mounts = { "Everest", "K2", "Kangchenjunga", "Lhotse" };
			String selectedMount = mounts[4];
			System.out.println("Selected item is: " + selectedMount);
		} catch (ArrayIndexOutOfBoundsException e) {
			System.out.println("Oops - made a mistake accessing the mounts array with a bad index.");
		}
	}
}
Edytuj i uruchom kod