Les erreurs arrivent. Un fichier manquant, une division par zéro, un réseau coupé... Les exceptions permettent de gérer ces erreurs proprement sans crasher ton programme !
Active ou non l'erreur, puis lance l'exécution. Si une exception est levée, le flux bifurque vers catch (rouge). Sinon il continue (vert). Le bloc finally s'exécute toujours.
Choisis un scénario puis clique sur Exécuter.
L'acrobate fait un saut périlleux. S'il rate... BOUM 💀 Le spectacle s'arrête, tout le cirque ferme.
L'acrobate fait un saut périlleux avec un filet en dessous. S'il rate, il rebondit et le spectacle continue !
try = tenter le saut périlleux
catch = le filet qui rattrape
finally = ranger le filet (toujours fait, succès ou échec)
Clique sur un scénario pour voir comment le code s'exécute :
try {
// Code risqué
int result = 10 / divisor;
System.out.println("Résultat: " + result);
} catch (ArithmeticException e) {
// Gestion de l'erreur spécifique
System.out.println("Erreur: " + e.getMessage());
} catch (Exception e) {
// Gestion générique (toutes les autres erreurs)
System.out.println("Erreur inattendue: " + e);
} finally {
// Toujours exécuté (nettoyage)
System.out.println("Fin de l'opération");
}
☕ Java : Les exceptions sont des objets. On peut throw
une exception avec throw new Exception("message").
Distinction entre checked (obligatoire à gérer) et unchecked (RuntimeException).
Erreurs de logique dans le code
Problèmes fichiers/réseau
Créées par le développeur
Sans gestion, une exception remonte la pile d'appels jusqu'à crasher le programme.
Avec un catch, on arrête la propagation !
finally pour fermer les ressourcescatch (Exception e) {} → catch vide !catch(Exception) trop général en premier
"Fail fast, recover gracefully"
Détecte les erreurs tôt, mais donne une chance au programme de se rétablir.
Une exception bien gérée vaut mieux qu'un crash silencieux !
Une erreur = Game Over ! 10 questions aléatoires.
Les excellentes vidéos de Graven sur les exceptions :