Gestion des exceptions

Résolu
Signaler
Messages postés
135
Date d'inscription
mercredi 23 mai 2007
Statut
Membre
Dernière intervention
7 avril 2012
-
Messages postés
135
Date d'inscription
mercredi 23 mai 2007
Statut
Membre
Dernière intervention
7 avril 2012
-
Bonjour,

Je travaille actuellement sur un projet dans lequel, comme pour tout projet, se pose la question de la gestion des exceptions. Ma question est la suivante : comment dois-je les gérer ? En effet, pour l'instant, dans tous mes blocs "catch", lorsqu'une exception "er" est levée je fais juste un er.printStackTrace() qui me permet de voir les exceptions dans la console, mais ce n'est pas propre. Alors que faire ? Un fichier de log ? Un  traitement personnalisé pour chaque type d'exception ?

Je prend toutes les idées ;)

Merci d'avance

6 réponses

Messages postés
5365
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 août 2021
111
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" />
<title>
</title>
<meta name="GENERATOR" content="OpenOffice.org 2.4 (Linux)" />
<style type="text/css">
<!--
@page { size: 21cm 29.7cm; margin: 2cm }
P { margin-bottom: 0.21cm }
-->
</style>
Salut,







"De plus, j'ai entendu parlé de log4J mais il me parait tropcompliqué pour mon projet qui est relativement petit."
>>Log4j c'est surtout pour
avoir une normalisation des logs basée sur le protocole syslog.







"En ce qui concerne les fichiers de log, comment puis les créer ? Pour
l'instant je crée juste un fichier que je nomme "monLog.log" et j'écrit
dans ce fichier avec un BufferedWriter. N'y a t il pas une méthode plus
"pro" pour faire ça ?"


>>Une solution simple qui ne
flinguerai pas ton code et surtout tes « er.printStackTrace() »
consisterait à rediriger le flux d'erreur vers le fichier log tout
en gardant ton code en l'état.


L'exemple ci-dessous montre comment
rediriger System.out et System.err vers un fichier :



import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;

public class Test {

    public static void main(String[] args) {
        PrintStream stdout = getPrintStream("stdout.log");
        PrintStream stderr = getPrintStream("stderr.log");
        if(stdout != null)
            System.setOut(stdout);
        if(stderr != null)
            System.setErr(stderr);
       
        //utilisation de System.out et System.err normalement
        System.out.println("Test stdout");
        System.err.println("Test stderr");
        //exemple avec une exception
        try {
            ((String)null).toCharArray();
        } catch(NullPointerException e) {
            e.printStackTrace();
        }
       
        if(stdout != null)
            stdout.close();
        if(stderr != null)
            stderr.close();
    }
   
    public static PrintStream getPrintStream(String file) {
        try {
             return new PrintStream(new FileOutputStream(new File(file)));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            return null;
        }
    }
}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
Messages postés
5365
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 août 2021
111
Salut,

l'option fichier de log est assez pratique si ton application n'est pas exécutée depuis une console (dos, unix, etc..).
Pour ce qui est du traitement personnalisé, ça dépend surtout de tes besoins...

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
Messages postés
135
Date d'inscription
mercredi 23 mai 2007
Statut
Membre
Dernière intervention
7 avril 2012
1
Merci de ta réponse.

En ce qui concerne les fichiers de log, comment puis les créer ? Pour l'instant je crée juste un fichier que je nomme "monLog.log" et j'écrit dans ce fichier avec un BufferedWriter. N'y a t il pas une méthode plus "pro" pour faire ça ?

De plus, j'ai entendu parlé de log4J mais il me parait tropcompliqué pour mon projet qui est relativement petit.
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
16
Salut,

Regardes du coté de log4j
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
16
ah,

j'ai raté un refresh
Messages postés
135
Date d'inscription
mercredi 23 mai 2007
Statut
Membre
Dernière intervention
7 avril 2012
1
Merci beaucoup pour vos réponses, je vais regarder tout ça