RuntimeException
RuntimeExceptions kräver inga try/catch-block i koden. De kan vanligtvis undvikas med goda kodningsrutiner. Men om ett misstag inte upptäcks och RuntimeException inte fångas upp, kommer applikationen att krascha och visa felinformation som användaren kanske inte förstår. I den här övningen får du se vad som händer när du inte fångar upp ett möjligt RuntimeException – och vad som händer när du gör det.
Den här övningen är en del av kursen
Datatyper och undantag i Java
Övningsinstruktioner
- Granska metoderna
withoutTryCatch()ochwithTryCatchi applikationen och notera skillnaden mellan dem. - Kör applikationen utan ändringar – det gör att metoden
withoutTryCatch()anropas, vilket orsakar ettRuntimeException. - Kommentera bort rad 5 och avkommentera rad 7, och kör sedan om applikationen. Nu anropas i stället metoden
withTryCatch(), som den här gången hanterarRuntimeException.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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.");
}
}
}