Vai al contenuto
eLearner.app
Modulo 5 · Lezione 1 di 29/14 nel corso~12 min
Lezioni del modulo (1/2)

I blocchi try-catch

In Java, gli errori che si verificano durante l'esecuzione di un programma vengono gestiti tramite le Eccezioni. La gestione delle eccezioni permette di intercettare le situazioni anomale ed evitare che il programma termini bruscamente.

La struttura try-catch

Per gestire una potenziale eccezione, racchiudiamo il codice rischioso all'interno di un blocco try. Se si verifica un errore all'interno del try, la JVM interrompe l'esecuzione del blocco e cerca un blocco catch corrispondente per gestire l'eccezione.

Code
try {
    int result = 10 / 0; // Genera un'eccezione ArithmeticException
    System.out.println("Questo non verrà stampato");
} catch (ArithmeticException e) {
    System.out.println("Si è verificato un errore aritmetico: " + e.getMessage());
}

Il blocco finally

Il blocco finally è opzionale e viene sempre eseguito, indipendentemente dal fatto che sia stata lanciata o meno un'eccezione. È ideale per rilasciare risorse o eseguire operazioni di pulizia.

Code
try {
    System.out.println("Esecuzione logica");
} catch (Exception e) {
    System.out.println("Errore");
} finally {
    System.out.println("Questo blocco viene sempre eseguito");
}

Lanciare Eccezioni: throw

Possiamo lanciare intenzionalmente un'eccezione usando la parola chiave throw, seguita da una nuova istanza di una classe di eccezione.

Code
public static void checkScore(int score) {
    if (score < 0 || score > 100) {
        throw new IllegalArgumentException("Il punteggio deve essere compreso tra 0 e 100");
    }
}

Prova tu

Esercizio#java.m5.l1.e1
Tentativi: 0Caricamento…

Completa il codice inserendo un blocco try-catch per gestire una possibile ArithmeticException derivante dalla divisione a / b. In caso di errore, stampa 'Error: division by zero'.

Caricamento editor…
Mostra suggerimento

Inserisci l'operazione di divisione all'interno del blocco `try` e cattura `ArithmeticException` stampando il messaggio richiesto.

Soluzione disponibile dopo 3 tentativi

Esercizio#java.m5.l1.e2
Tentativi: 0Caricamento…

Completa il codice implementando un blocco try-catch-finally. Nel blocco try tenta di convertire la stringa str in un intero usando Integer.parseInt. Nel catch cattura NumberFormatException e stampa 'Invalid number'. Nel blocco finally stampa 'Finally'.

Caricamento editor…
Mostra suggerimento

Scrivi la struttura `try { ... } catch (NumberFormatException e) { ... } finally { ... }`.

Soluzione disponibile dopo 3 tentativi

Esercizio#java.m5.l1.e3
Tentativi: 0Caricamento…

Completa il metodo checkAge lanciando un'eccezione IllegalArgumentException con messaggio 'Underage' se l'età fornita è minore di 18 anni.

Caricamento editor…
Mostra suggerimento

Usa `if (age < 18)` e la parola chiave `throw new` per istanziare e lanciare l'eccezione.

Soluzione disponibile dopo 3 tentativi