RuntimeException
RuntimeException nevyžadují v kódu bloky try/catch. Většinou se jim dá předejít správnými programátorskými postupy. Pokud ale chyba zůstane neodhalena a RuntimeException není zachycena, aplikace selže a zobrazí informace o problému, kterým uživatel nemusí vždy rozumět. V tomto cvičení uvidíš, co se stane, když možnou RuntimeException nezachytíš, a co se stane, když ji pomocí try/catch ošetříš.
Toto cvičení je součástí kurzu
Datové typy a výjimky v Javě
Pokyny k cvičení
- Prohlédni si metody
withoutTryCatch()awithTryCatchv této aplikaci a všimni si rozdílu mezi nimi. - Spusť aplikaci beze změn – metoda
withoutTryCatch()se provede a způsobíRuntimeException. - Zakomentuj řádek 5 a odkomentuj řádek 7, poté aplikaci spusť znovu – tentokrát se provede metoda
withTryCatch(), kteráRuntimeExceptionošetří.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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.");
}
}
}