Fiche de révision : Exceptions et entrées-sorties en Java

Plan du Cours

  1. Rôle des exceptions Java
  2. Lancer et attraper une exception
  3. Créer et déclarer des exceptions
  4. Représenter fichiers et répertoires
  5. Lire et écrire des fichiers
  6. Sérialiser des objets Java

1. Rôle des exceptions Java

Notions clés & Définitions

  • Gestion d’exceptions : Mécanisme formel de Java qui traite les erreurs inattendues ou inacceptables que le code ne peut pas récupérer dans le contexte actuel.

★ À maîtriser

  • Lorsqu’une exception est rencontrée, le code arrête son chemin d’exécution et la remonte vers le contexte supérieur afin qu’un gestionnaire puisse la traiter.

📌 La classe java.lang.Exception représente les exceptions ou erreurs non bloquantes, tandis que java.lang.Error représente les erreurs bloquantes.

Compléments

  • Parmi les exceptions prédéfinies, IOException concerne les opérations d’entrée-sortie, FileNotFoundException un fichier inexistant, NumberFormatException le format d’un nombre et NullPointerException l’accès à un attribut ou une méthode d’un objet non instancié.

Astuce mémo

Erreur inattendue → remontée vers un contexte capable de la traiter

2. Lancer et attraper une exception

Notions clés & Définitions

  • Bloc try : Délimite la région de code surveillée qui peut lancer une exception.
  • Bloc catch : Le gestionnaire qui attrape et traite l’exception lancée dans le bloc try.

★ À maîtriser

  • Le mot-clé throw crée et lance un objet exception, ce qui arrête le chemin d’exécution courant et transfère le contrôle à un gestionnaire d’exceptions.

📌 Les clauses catch doivent être ordonnées de l’exception la plus spécialisée à la plus générale, et un seul gestionnaire est exécuté pour une exception donnée.

📌 Le bloc finally est exécuté qu’une exception soit lancée ou non, puis l’exécution normale reprend après le bloc try-catch-finally.

Compléments

📌 Si aucun gestionnaire ne valide le type de l’exception lancée, l’exécution de la méthode est arrêtée et l’exception remonte vers le contexte englobant.

Astuce mémo

try → catch spécialisé → finally → suite normale

3. Créer et déclarer des exceptions

★ À maîtriser

  • Pour créer une exception personnalisée, une classe hérite d’un type d’exception existant, généralement proche de la nouvelle erreur, et tout type d’exception hérite de java.lang.Exception.

📌 Le mot-clé throws, suivi d’une liste d’exceptions potentielles, déclare dans la signature d’une méthode les exceptions qu’elle peut lancer.

Compléments

  • La classe java.lang.Throwable fournit notamment getMessage(), toString() et printStackTrace() pour examiner l’état du programme au moment de l’exception.

📌 La vérification à la compilation oblige le programmeur à prévoir la gestion des exceptions que les méthodes peuvent lancer.

Astuce mémo

throw lance l’exception, throws l’annonce dans la méthode

4. Représenter fichiers et répertoires

Notions clés & Définitions

  • Classe File : Représente abstraitement et indépendamment du système d’exploitation le nom d’un fichier ou d’un répertoire.

★ À maîtriser

  • La classe File permet de créer ou supprimer des fichiers et répertoires, récupérer des chemins relatifs ou absolus, lister un répertoire et consulter les caractéristiques d’un fichier.

Compléments

  • Les méthodes File citées sont:

    • canRead()
    • canWrite()
    • delete()
    • deleteOnExit()
    • exists()
    • length()
    • listFiles()
  • Dans l’exemple DirList, File path = new File(".") représente le répertoire courant et listFiles() fournit les fichiers et répertoires à parcourir.

Astuce mémo

Un objet File tient le chemin abstrait d’un fichier et inspecte ses propriétés

5. Lire et écrire des fichiers

Points essentiels

  • Les classes Scanner et File peuvent servir à lire un fichier texte, tandis que FileWriter, FileOutputStream ou BufferedWriter peuvent servir à écrire dans un fichier texte.

📌 Les flux d’entrée servent à lire des données, tandis que les flux de sortie servent à écrire des données.

6. Sérialiser des objets Java

Notions clés & Définitions

  • Sérialisation : Transforme un objet Java en une séquence d’octets pouvant servir à régénérer l’objet original, y compris à travers un réseau et entre différents systèmes d’exploitation.

★ À maîtriser

  • Pour sérialiser un objet, il faut envelopper un OutputStream dans un ObjectOutputStream, appeler writeObject avec l’objet à sérialiser, puis fermer le flux ; l’extension habituelle du fichier est .ser.

  • Pour désérialiser, ObjectInputStream lit les données avec readInt ou readObject, puis les convertit vers le type attendu avant de fermer le flux.

📌 Une classe rend ses objets sérialisables en implémentant l’interface Serializable, qui ne contient aucune méthode et fonctionne comme un simple indicateur.

Compléments

  • Lors de la sérialisation, les liens vers d’autres objets et ces objets eux-mêmes sont enregistrés ou restaurés, tandis que les objets non sérialisables ne sont jamais enregistrés.

  • ObjectOutputStream et ObjectInputStream fournissent aussi des méthodes pour écrire et lire des données primitives, comme DataOutputStream et DataInputStream.

Astuce mémo

OutputStream → ObjectOutputStream → writeObject → fichier .ser

Tableaux de synthèse

Mots-clés de gestion des exceptions

ÉlémentRôleCondition d’exécution
throwLance un objet exceptionLorsqu’une instruction déclenche l’erreur
throwsDéclare les exceptions potentielles d’une méthodeDans la signature de la méthode
trySurveille une région de codeToujours exécuté pour le code surveillé
catchAttrape et traite une exceptionSi le type lancé correspond
finallyExécute le code finalQu’il y ait une exception ou non

Teste tes connaissances

Teste tes connaissances sur Exceptions et entrées-sorties en Java avec 17 questions à choix multiples et corrections détaillées.

1. Quel mécanisme Java traite formellement une erreur inattendue que le code ne peut pas récupérer dans le contexte actuel ?

2. Lorsqu’une exception est rencontrée et ne peut pas être traitée immédiatement, que devient le chemin d’exécution courant ?

Faire le QCM →

Révisez avec les flashcards

Mémorisez les concepts clés de Exceptions et entrées-sorties en Java avec 38 flashcards interactives.

Qu'est-ce que la gestion d'exceptions en Java ?

Un mécanisme formel qui traite les erreurs inattendues ou inacceptables.

Que se passe-t-il quand une exception est rencontrée en Java ?

Le code arrête son exécution et remonte l'exception au contexte supérieur.

Que représente la classe java.lang.Exception ?

Les exceptions ou erreurs non bloquantes.

Voir les flashcards →

Cours similaires

Crée tes propres fiches de révision

Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.

Générateur de fiches