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.
import java.io.File;
import java.io.FileReader;
public class FileNotFoundStudi {
public static void main(String args[]) {
File file = new File("E://file.txt");
FileReader fr = new FileReader(file);
}
}
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
C:\>javac FileNotFoundStudi.java
java: error: unreported exception FileNotFoundException; must be caught or declared to be thrown
FileReader fr = new FileReader(file);
^
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