RuntimeException
Les RuntimeExceptions ne nécessitent pas de blocs try/catch dans le code. On peut généralement les éviter avec de bonnes pratiques de programmation. Toutefois, lorsque des erreurs ne sont pas détectées et que la RuntimeException n'est pas interceptée, l'application échoue et affiche des informations que l'utilisateur ne comprendra pas toujours. Dans cet exercice, vous verrez ce qui se passe quand vous n'interceptez pas une RuntimeException potentielle et ce qui se passe lorsque vous les interceptez avec un try/catch.
Cette activité fait partie du cours
Types de données et exceptions en Java
Instructions de l’exercice
- Examinez les méthodes
withoutTryCatch()etwithTryCatchdans cette application et notez leur différence. - Exécutez l'application sans modification — cela lance la méthode
withoutTryCatch(), ce qui provoque uneRuntimeException. - Commentez la ligne 5 et décommentez la ligne 7, puis exécutez de nouveau l'application ; cette fois, la méthode
withTryCatch()s'exécute et intercepte laRuntimeException.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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.");
}
}
}