Passer au contenu principal
eLearner.app
Module 5 · Leçon 1 sur 29/14 dans le cours~12 min
Leçons du module (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

Exercice#java.m5.l1.e1
Tentatives : 0Chargement…

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'.

Chargement de l'éditeur…
Afficher l'indice

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

Solution disponible après 3 tentatives

Exercice#java.m5.l1.e2
Tentatives : 0Chargement…

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'.

Chargement de l'éditeur…
Afficher l'indice

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

Solution disponible après 3 tentatives

Exercice#java.m5.l1.e3
Tentatives : 0Chargement…

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

Chargement de l'éditeur…
Afficher l'indice

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

Solution disponible après 3 tentatives