RuntimeException
RuntimeExceptions nu necesită blocuri try/catch în cod. De obicei, pot fi evitate prin practici corecte de programare. Totuși, atunci când erorile nu sunt detectate și RuntimeException rămâne neprinsă, aplicația va eșua și va afișa informații despre problemă pe care utilizatorul s-ar putea să nu le înțeleagă. În acest exercițiu, vei vedea ce se întâmplă atunci când nu prinzi o posibilă RuntimeException și ce se întâmplă atunci când o gestionezi cu try/catch.
Acest exercițiu face parte din cursul
Tipuri de date și excepții în Java
Instrucțiuni pentru exercițiu
- Examinează metodele
withoutTryCatch()șiwithTryCatchdin această aplicație și observă diferența dintre ele. - Rulează aplicația fără modificări – ceea ce determină execuția metodei
withoutTryCatch()și provoacă oRuntimeException. - Comentează linia 5 și decomentează linia 7, apoi rulează din nou aplicația – de data aceasta se execută metoda
withTryCatch(), care gestioneazăRuntimeException.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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.");
}
}
}