Corriger une erreur
Les erreurs sont des problèmes graves dans l’univers Java. Parfois, elles proviennent de facteurs environnementaux hors de notre contrôle. D’autres fois, c’est un mauvais code qui déclenche une Error. Dans cet exercice, vous allez observer puis corriger une application qui ne se termine jamais et provoque une Error (en l’occurrence, un StackOverflowError). Voir une Error vous aidera à les reconnaître à l’avenir. Contrairement aux exceptions, les erreurs ne peuvent pas être gérées avec try-catch ni avec throws.
Cet exercice fait partie du cours
Types de données et exceptions en Java
Instructions
- Exécutez le code d’exemple tel quel, où la valeur de
cyclesne change jamais ; cela entraîne une boucle infinie d’appels, fait échouer l’application et génère unStackOverflowError. - Après avoir constaté le
StackOverflowError, ajoutez+ 1àcyclesdans l’appel àdoWork, ce qui fera évoluer la valeur de cycles et arrêtera la boucle infinie d’appels. - Réexécutez le code pour voir l’application s’exécuter avec succès et éviter le
StackOverflowError.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
public class ErrorGeneration {
public static void main(String[] args) {
System.out.println("Started the work");
doWork(0);
System.out.println("Work complete");
}
public static void doWork(int cycles) {
if (cycles < 10) {
// Add +1 to cycles after running
doWork(cycles);
}
}
}