Bonjour, je suis en train de faire quelques tests sur la gestion des exceptions et j'aimerais être sûr de faire les choses convenablement.
Le principe du programme est de lire des trames GPS contenues dans un fichier texte, de splitter ces trames pour en récupérer que quelques infos qui seront ensuite enregistrer dans un autre fichier texte.
J'aimerais savoir si je dois gérer absolument toutes les exceptions possibles (NullPointeurException, IOException, etc....) ?
Comment exploiter proprement la fermeture des flux d'entrée/sorties en cas de levée d'exception ? utilisation d'un finally ?
Les exceptions semblent être extrêmement utiles en plus d'être obligatoires par moment mais j'aimerais être sûr de bien les utiliser ??
Voici quelques exemples que j'ai fait sur lesquels vos avis me seraient utiles :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 public class AnalyseTrameGpsFile { public static void main(String[] args) { File ftrames = new File("trame1.txt"); File fsortie = new File("latlong.txt"); long taille = ftrames.length(); long datemodif = ftrames.lastModified(); Date d = new Date(datemodif); String date = d.toString(); SimpleDateFormat formdate = new SimpleDateFormat("yyyy/MM/dd - HH:mm:ss"); System.out.println(taille+"octets - "+formdate.format(d)+" - "+date); BufferedReader entree=null; FileWriter sortie = null; try { entree = new BufferedReader(new FileReader(ftrames)); sortie = new FileWriter(fsortie, true); String ligne; try { do { ligne = entree.readLine(); System.out.println(ligne); String[] tabitemstrame = ligne.split(","); sortie.append(date+" - LAT:"+tabitemstrame[1]+" - LONG:"+tabitemstrame[2]+"\r\n"); }while(ligne!=null); } catch(NullPointerException e) { System.out.println("Erreur Pointeur Null !"); } finally { entree.close(); sortie.close(); } } catch (FileNotFoundException ex) { String namefile = ftrames.getName(); System.out.println("Le fichier : \""+namefile+"\" est introuvable. Arret du programme !"); } catch (IOException ex) { String namefile = fsortie.getName(); System.out.println("Le fichier : \""+namefile+"\" a subi une erreur. Arret du programme !"); } }Merci d'avance pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 public class AnalyseTrameGpsFile { public static void main(String[] args) throws NullPointerException{ File ftrames = new File("trame1.txt"); File fsortie = new File("latlong.txt"); long taille = ftrames.length(); long datemodif = ftrames.lastModified(); Date d = new Date(datemodif); String date = d.toString(); SimpleDateFormat formdate = new SimpleDateFormat("yyyy/MM/dd - HH:mm:ss"); System.out.println(taille+"octets - "+formdate.format(d)+" - "+date); BufferedReader entree=null; FileWriter sortie = null; try { entree = new BufferedReader(new FileReader(ftrames)); sortie = new FileWriter(fsortie, true); String ligne; do { ligne = entree.readLine(); if(ligne != null) { System.out.println(ligne); String[] tabitemstrame = ligne.split(","); sortie.append(date+" - LAT:"+tabitemstrame[1]+" - LONG:"+tabitemstrame[2]+"\r\n"); } }while(ligne!=null); entree.close(); sortie.close(); } catch (FileNotFoundException ex) { String namefile = ftrames.getName(); System.out.println("Le fichier : \""+namefile+"\" est introuvable. Arret du programme !"); } catch (IOException ex) { //Comment savoir ici si l'exception est levée par FileWriter ou .close() ??????? String namefile = fsortie.getName(); System.out.println("Le fichier : \""+namefile+"\" a subi une erreur. Arret du programme !"); } }
Partager