Aan de slagGa gratis aan de slag

RuntimeException

RuntimeExceptions vereisen geen try/catch-blokken in de code. Je kunt ze meestal voorkomen met goede programmeerpraktijken. Maar als fouten niet worden opgemerkt en de RuntimeException niet wordt opgevangen, crasht de applicatie en verschijnt er foutinformatie die de gebruiker niet altijd begrijpt. In deze oefening zie je wat er gebeurt als je een mogelijke RuntimeException niet opvangt én wat er gebeurt als je die wel met try/catch afhandelt.

Deze oefening maakt deel uit van de cursus

Gegevenstypen en uitzonderingen in Java

Cursus bekijken

Oefeninstructies

  • Bekijk de methoden withoutTryCatch() en withTryCatch in deze applicatie en let op het verschil tussen beide.
  • Voer de applicatie uit zonder wijzigingen — hierdoor wordt de methode withoutTryCatch() uitgevoerd, wat een RuntimeException veroorzaakt.
  • Zet regel 5 in commentaar en haal het commentaar weg bij regel 7, en voer de applicatie opnieuw uit. Hierdoor wordt de methode withTryCatch() uitgevoerd, die dit keer de RuntimeException afhandelt.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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.");
		}
	}
}
Code bewerken en uitvoeren