RuntimeException
Le RuntimeExceptions non richiedono blocchi try/catch nel codice. Di solito si possono evitare con buone pratiche di programmazione. Tuttavia, quando gli errori non vengono rilevati e la RuntimeException non è gestita, l’applicazione si arresta e mostra informazioni sul problema che l’utente potrebbe non capire. In questo esercizio vedrai cosa succede quando non intercetti una possibile RuntimeException e cosa succede quando la gestisci con try/catch.
Questo esercizio fa parte del corso
Tipi di dati ed eccezioni in Java
Istruzioni dell'esercizio
- Esamina i metodi
withoutTryCatch()ewithTryCatchin questa applicazione e nota la differenza tra i due. - Esegui l’applicazione senza modifiche: verrà eseguito il metodo
withoutTryCatch(), che provoca unaRuntimeException. - Commenta la riga 5 e decommenta la riga 7, quindi riesegui l’applicazione: questa volta verrà eseguito il metodo
withTryCatch(), che gestisce laRuntimeException.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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.");
}
}
}