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
Oefeninstructies
- Bekijk de methoden
withoutTryCatch()enwithTryCatchin deze applicatie en let op het verschil tussen beide. - Voer de applicatie uit zonder wijzigingen — hierdoor wordt de methode
withoutTryCatch()uitgevoerd, wat eenRuntimeExceptionveroorzaakt. - 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 deRuntimeExceptionafhandelt.
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.");
}
}
}