La gestion des exceptions
Java
Maîtrisez l'art de gérer les erreurs pour créer des applications
robustes et fiables
Qu'est-ce qu'une exception ?
Événement inattendu
Une exception est un événement qui interrompt le flux normal d'exécution du
programme lors de l'exécution.
Mécanisme de Java
Java utilise les exceptions pour signaler et gérer les conditions d'erreur de manière
structurée et contrôlée.
Protection du programme
Permet d'éviter les arrêts brutaux et de maintenir la stabilité de l'application face
aux erreurs.
Types d'exceptions : checked vs unchecked
Exceptions vérifiées (Checked)
• Doivent être gérées obligatoirement
• Vérifiées à la compilation
• IOException, SQLException, ClassNotFoundException
• Héritent de Exception mais pas de RuntimeException
Exceptions non vérifiées (Unchecked)
• Gestion optionnelle
• Détectées à l'exécution
• NullPointerException, ArrayIndexOutOfBoundsException
• Héritent de RuntimeException
La hiérarchie des classes d'exceptions
Exception
Erreurs applicatives: vérifiées et non vérifiées
Error
Erreurs système graves
Throwable
Racine de toutes les exceptions Java
Toutes les exceptions Java héritent de la classe Throwable, qui se divise en deux branches principales : Error pour les erreurs système et Exception
Le bloc try-catch-finally
01
Bloc try
Contient le code susceptible de générer une exception.
C'est la zone surveillée où les erreurs peuvent survenir.
02
Bloc catch
Capture et traite les exceptions spécifiques. Peut y avoir
plusieurs blocs catch pour différents types d'exceptions.
03
Bloc finally
S'exécute toujours, exception ou pas. Idéal pour libérer
les ressources comme fermer des fichiers ou
connexions.
try { // Code à risque int result = 10/0;} catch (ArithmeticException e) { System.out.println("Division par zéro !");} finally { // Nettoyage des ressources
System.out.println("Bloc finally exécuté");}
Lancer des exceptions avec throw et
throws
Le mot-clé throw
Permet de lancer explicitement une exception dans le code. Utilisé pour signaler une
condition d'erreur spécifique.
if (age < 0) { throw new IllegalArgumentException("Âge invalide");}
Le mot-clé throws
Déclare qu'une méthode peut lever une ou plusieurs exceptions. Informe les appelants
des exceptions possibles.
public void readFile(String filename) throws IOException { // Code de lecture}
Créer ses propres exceptions
personnalisées
Créez des exceptions métier spécifiques à votre application pour une gestion d'erreurs plus
précise et professionnelle.
public class CompteInsuffisantException extends Exception { private double soldeActuel;
private double montantDemande; public CompteInsuffisantException(String message,
double solde, double montant) { super(message); this.soldeActuel =
solde; this.montantDemande = montant; } // Getters pour accéder aux détails}
Conseil : Héritez d'Exception pour les erreurs vérifiées ou de RuntimeException pour les
erreurs de programmation.
Bonnes pratiques de gestion d'erreurs
Spécificité des exceptions
Capturez les exceptions les plus spécifiques en premier, les générales en dernier.
Évitez de capturer Exception de manière globale.
Messages informatifs
Fournissez des messages d'erreur clairs et exploitables. Incluez le contexte et les
actions possibles pour résoudre le problème.
Libération des ressources
Utilisez try-with-resources ou finally pour garantir la fermeture des ressources.
Évitez les fuites mémoire.
Logging approprié
Loggez les exceptions avec le niveau approprié. Stack traces complètes pour le
debug, messages utilisateur pour l'info.
Exemples pratiques et cas d'usage courants
Lecture de fichiers
Gestion des IOException
lors de l'accès aux fichiers.
Utilisation de try-with-
resources pour fermer
automatiquement les flux.
Accès base de données
Capture des SQLException
lors des opérations JDBC.
Gestion des timeouts et
des erreurs de connexion
réseau.
Appels API réseau
Traitement des timeouts,
erreurs HTTP et problèmes
de sérialisation JSON. Retry
pattern pour la résilience.
Validation métier
Exceptions personnalisées
pour valider les règles
business. Messages
d'erreur orientés
utilisateur final.
Récapitulatif et conseils pour un code robuste
Gestion proactive
Anticipez les erreurs possibles et gérez-
les explicitement. Un code défensif évite
les surprises en production.
Hiérarchie claire
Comprenez la hiérarchie des exceptions
pour capturer au bon niveau. Checked
vs unchecked selon le contexte.
Documentation complète
Documentez les exceptions possibles
dans vos méthodes. Facilitez la
maintenance et l'utilisation par d'autres
développeurs.
"Une application robuste n'est pas celle qui ne tombe jamais en panne, mais celle qui gère élégamment ses erreurs et continue de
fonctionner."

La-gestion-des-exceptions-Javxbxhea.pptx

  • 1.
    La gestion desexceptions Java Maîtrisez l'art de gérer les erreurs pour créer des applications robustes et fiables
  • 2.
    Qu'est-ce qu'une exception? Événement inattendu Une exception est un événement qui interrompt le flux normal d'exécution du programme lors de l'exécution. Mécanisme de Java Java utilise les exceptions pour signaler et gérer les conditions d'erreur de manière structurée et contrôlée. Protection du programme Permet d'éviter les arrêts brutaux et de maintenir la stabilité de l'application face aux erreurs.
  • 3.
    Types d'exceptions :checked vs unchecked Exceptions vérifiées (Checked) • Doivent être gérées obligatoirement • Vérifiées à la compilation • IOException, SQLException, ClassNotFoundException • Héritent de Exception mais pas de RuntimeException Exceptions non vérifiées (Unchecked) • Gestion optionnelle • Détectées à l'exécution • NullPointerException, ArrayIndexOutOfBoundsException • Héritent de RuntimeException
  • 4.
    La hiérarchie desclasses d'exceptions Exception Erreurs applicatives: vérifiées et non vérifiées Error Erreurs système graves Throwable Racine de toutes les exceptions Java Toutes les exceptions Java héritent de la classe Throwable, qui se divise en deux branches principales : Error pour les erreurs système et Exception
  • 5.
    Le bloc try-catch-finally 01 Bloctry Contient le code susceptible de générer une exception. C'est la zone surveillée où les erreurs peuvent survenir. 02 Bloc catch Capture et traite les exceptions spécifiques. Peut y avoir plusieurs blocs catch pour différents types d'exceptions. 03 Bloc finally S'exécute toujours, exception ou pas. Idéal pour libérer les ressources comme fermer des fichiers ou connexions. try { // Code à risque int result = 10/0;} catch (ArithmeticException e) { System.out.println("Division par zéro !");} finally { // Nettoyage des ressources System.out.println("Bloc finally exécuté");}
  • 6.
    Lancer des exceptionsavec throw et throws Le mot-clé throw Permet de lancer explicitement une exception dans le code. Utilisé pour signaler une condition d'erreur spécifique. if (age < 0) { throw new IllegalArgumentException("Âge invalide");} Le mot-clé throws Déclare qu'une méthode peut lever une ou plusieurs exceptions. Informe les appelants des exceptions possibles. public void readFile(String filename) throws IOException { // Code de lecture}
  • 7.
    Créer ses propresexceptions personnalisées Créez des exceptions métier spécifiques à votre application pour une gestion d'erreurs plus précise et professionnelle. public class CompteInsuffisantException extends Exception { private double soldeActuel; private double montantDemande; public CompteInsuffisantException(String message, double solde, double montant) { super(message); this.soldeActuel = solde; this.montantDemande = montant; } // Getters pour accéder aux détails} Conseil : Héritez d'Exception pour les erreurs vérifiées ou de RuntimeException pour les erreurs de programmation.
  • 8.
    Bonnes pratiques degestion d'erreurs Spécificité des exceptions Capturez les exceptions les plus spécifiques en premier, les générales en dernier. Évitez de capturer Exception de manière globale. Messages informatifs Fournissez des messages d'erreur clairs et exploitables. Incluez le contexte et les actions possibles pour résoudre le problème. Libération des ressources Utilisez try-with-resources ou finally pour garantir la fermeture des ressources. Évitez les fuites mémoire. Logging approprié Loggez les exceptions avec le niveau approprié. Stack traces complètes pour le debug, messages utilisateur pour l'info.
  • 9.
    Exemples pratiques etcas d'usage courants Lecture de fichiers Gestion des IOException lors de l'accès aux fichiers. Utilisation de try-with- resources pour fermer automatiquement les flux. Accès base de données Capture des SQLException lors des opérations JDBC. Gestion des timeouts et des erreurs de connexion réseau. Appels API réseau Traitement des timeouts, erreurs HTTP et problèmes de sérialisation JSON. Retry pattern pour la résilience. Validation métier Exceptions personnalisées pour valider les règles business. Messages d'erreur orientés utilisateur final.
  • 10.
    Récapitulatif et conseilspour un code robuste Gestion proactive Anticipez les erreurs possibles et gérez- les explicitement. Un code défensif évite les surprises en production. Hiérarchie claire Comprenez la hiérarchie des exceptions pour capturer au bon niveau. Checked vs unchecked selon le contexte. Documentation complète Documentez les exceptions possibles dans vos méthodes. Facilitez la maintenance et l'utilisation par d'autres développeurs. "Une application robuste n'est pas celle qui ne tombe jamais en panne, mais celle qui gère élégamment ses erreurs et continue de fonctionner."