Appliquer la notion

Pour mettre en évidence la notion d'erreur, nous allons faire une illustration très simple.

Question

Identifiez le type d'erreur que l'on a et quelle approche adopter pour le résoudre.

1
import java.io.File;
2
import java.io.FileReader;
3
4
public class FileNotFoundStudi {
5
6
   public static void main(String args[]) {		
7
      File file = new File("E://file.txt");
8
      FileReader fr = new FileReader(file); 
9
   }
10
}

Indice

Erreur de logique métier : tout compile bien, cependant, les résultats sont logiquement incohérents.

Erreur de compilation : porte sur le respect des règles (syntaxiques et sémantiques) grammaticales du langage Java.

Erreur d'exécution : survient après compilation et nécessite d'être gérée par des mécanismes propres au langage (gestion des exceptions en Java par exemple).

Indice

Type d'erreur : les erreurs de code sont soit des erreurs de compilation, soit des erreurs d'exécution et surtout pas des erreurs de logique métier.

Et donc trois choix :

  • Erreur de logique métier

  • Erreur de compilation

  • Erreur d'exécution

Indice

Approche de résolution : selon les types d'erreurs

Les erreurs de logique métier ==> Débogage  : Utiliser un débogueur pour suivre instruction par instruction l'exécution du programme et le contenu de toutes les variables à chaque étape.

Les erreurs de compilation ==> EDI checker/ Débogage/Gestion des exceptions : Un bon éditeur révèle déjà les anomalies, cependant on peut toujours utiliser un débogueur ou encore gérer les exceptions.

Les erreurs d'exécution ==> PathFinder/Gestion des exceptions ou : Utiliser une vérification formelle (PathFinder) ou encore la gestion des exceptions.

Solution

Erreur de compilation
1
C:\>javac FileNotFoundStudi.java
2
java: error: unreported exception FileNotFoundException; must be caught or declared to be thrown
3
      FileReader fr = new FileReader(file);
4
                      ^
5
1 error

Le résultat de la console ici indique : Java lève une exception de type FileNotFoundException et le compilateur javac demande à ce que cette exception soit gérée.

Type d'erreur :erreur de compilation

Approche de résolution :gestion d'exception