RuntimeException
Les RuntimeExceptions ne nécessitent pas de blocs try/catch dans le code. On peut généralement les éviter en appliquant de bonnes pratiques. Toutefois, si une erreur n’est pas détectée et que la RuntimeException n’est pas interceptée, l’application plantera et affichera des informations que l’utilisateur ne comprendra pas forcément. Dans cet exercice, vous verrez ce qui se passe lorsque vous ne captez pas une RuntimeException possible, puis ce qui se passe lorsque vous la gérez avec un try/catch.
Cet exercice fait partie du cours
Types de données et exceptions en Java
Instructions
- Examinez les méthodes
withoutTryCatch()etwithTryCatchdans cette application et notez la différence entre elles. - Exécutez l’application sans modification : cela appelle la méthode
withoutTryCatch()et provoque uneRuntimeException. - Commentez la ligne 5 et décommentez la ligne 7, puis relancez l’application : la méthode
withTryCatch()s’exécute et gère cette fois laRuntimeException.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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.");
}
}
}