Programmation Orientée Objet avec Java – Coda 1 ère année – 2026 ## Exercice 1: Lecture de fichier Ce code permet de lire le contenu d’un fichier ```java FileReader reader = new FileReader("fichier.txt"); BufferedReader br = new BufferedReader(reader); System.out.println(br.readLine()); br.close(); ``` Si vous utilisez simplement ce code dans une fonction main, votre IDE va refuser de compiler le programme. > [!question] Pourquoi ? Ajouter le code nécessaire pour faire fonctionner ce programme > [!example]- Correction > ```java > FileReader reader = null; > BufferedReader br = null; > try { > reader = new FileReader("fichier.txt"); > br = new BufferedReader(reader); > System.out.println(br.readLine()); > } catch (IOException e) { > System.err.println("Cannot read file : " + e.getMessage()); > }finally { > if(reader!=null){ > try { > reader.close(); > } catch (IOException e) { > // Ignore silently > // Only because in finally block > } > } > if(br!=null){ > try { > br.close(); > } catch (IOException e) { > // Ignore silently > // Only because in finally block > } > } > } > ``` ## Exercice 2 : Entier Positif 1 – Définir une nouvelle Exception: `WrongNumberException` - Cette exception doit prendre en paramètre de son constructeur un `int`. - **Redéfinir** la méthode `toString()` pour afficher le message suivant : `Erreur de nombre : {nombre}` 2 - Écrire une classe `PositiveInteger` qui permet de **manipuler des entiers naturels (positifs ou nuls)**. ```java class PositiveInteger { private int number; } ``` Ecrire un **constructeur** qui prend en **paramètre** un `int`. Le constructeur **doit lever une exception** `WrongNumberException` si le nombre est négatif. Le constructeur doit `throw` la gestion de l’exception dans sa signature - Ajouter un getter sur la propriété `number` - Ajouter une méthode `add( int number)` qui permet d’additioner un entier. La méthode **doit lever une exception** de type `WrongNumberException` **si le paramètre est négatif** 3 – Écrire un main qui un **instancie** un `PositiveInteger` , additionne un chiffre et gère les exceptions ## Exo 3 - try with resource Refaire l'exo 1 avec un try with resources <!-- > [!example]- Correction > ```java > try ( > FileReader reader = new FileReader("fichier.txt"); > BufferedReader br = new BufferedReader(reader); > ) { > System.out.println(br.readLine()); > } catch (IOException e) { > System.err.println("Could nor read file : " + e.getMessage()); > } > ``` -->