Leçons du module (1/2)
Les blocs try-catch
En Java, les erreurs qui se produisent pendant l'exécution d'un programme sont gérées par les Exceptions. La gestion des exceptions permet d'intercepter les situations anormales et d'éviter que le programme ne se termine brutalement.
La structure try-catch
Pour gérer une exception potentielle, nous raccompagnons le code à risque à l'intérieur d'un bloc try. Si une erreur se produit à l'intérieur du try, la JVM interrompt l'exécution du bloc et cherche un bloc catch correspondant pour gérer l'exception.
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());
}
Le bloc finally
Le bloc finally est optionnel et est toujours exécuté, que l'exception ait été lancée ou non. Il est idéal pour libérer des ressources ou effectuer des opérations de nettoyage.
try {
System.out.println("Esecuzione logica");
} catch (Exception e) {
System.out.println("Errore");
} finally {
System.out.println("Questo blocco viene sempre eseguito");
}
Lancer des Exceptions : throw
Nous pouvons lancer intentionnellement une exception en utilisant le mot-clé throw, suivi d'une nouvelle instance d'une classe d'exception.
public static void checkScore(int score) {
if (score < 0 || score > 100) {
throw new IllegalArgumentException("Il punteggio deve essere compreso tra 0 e 100");
}
}
À toi de jouer
Complétez le code en insérant un bloc try-catch pour gérer une possible ArithmeticException découlant de la division a / b. En cas d'erreur, affichez 'Error: division by zero'.
Afficher l'indice
Insérez l'opération de division à l'intérieur du bloc `try` et capturez l' `ArithmeticException` en affichant le message demandé.
Solution disponible après 3 tentatives
Complétez le code en implémentant un bloc try-catch-finally. Dans le bloc try, tentez de convertir la chaîne str en entier à l'aide de Integer.parseInt. Dans le catch, capturez NumberFormatException et affichez 'Invalid number'. Dans le bloc finally, affichez 'Finally'.
Afficher l'indice
Écrivez la structure `try { ... } catch (NumberFormatException e) { ... } finally { ... }`.
Solution disponible après 3 tentatives
Complétez la méthode checkAge en lançant une exception IllegalArgumentException avec le message 'Underage' si l'âge fourni est inférieur à 18 ans.
Afficher l'indice
Utilisez `if (age < 18)` et le mot-clé `throw new` pour instancier et lancer l'exception.
Solution disponible après 3 tentatives