Gestion des exceptions

Résolu
plop3000 Messages postés 135 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 7 avril 2012 - 10 avril 2008 à 15:49
plop3000 Messages postés 135 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 7 avril 2012 - 10 avril 2008 à 21:31
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

Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
10 avril 2008 à 17:13
<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
3
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
10 avril 2008 à 16:33
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
0
plop3000 Messages postés 135 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 7 avril 2012 1
10 avril 2008 à 16:39
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.
0
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 18
10 avril 2008 à 17:18
Salut,

Regardes du coté de log4j
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 18
10 avril 2008 à 17:18
ah,

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