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());
> }
> ```
-->