IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Bonne gestion des erreurs d'un client/server


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 22
    Par défaut Bonne gestion des erreurs d'un client/server
    Bonjour, je developpe une appli client/server avec du corba. Je me pose juste une question de bonne pratique de developpement lors d'un appel d'une fonction qui peut lever des exceptions.

    Prenons par exemple une methode saveFile() . Le client fait une demande de sauvegarde de fichier au serveur via un proxy. Le serveur applique sa fonction saveFile.

    Est il preferable que le serveur catch son exception, la logue et renvoie un etat success true/false (ou code erreur ) de la methode au client,

    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
     
    //SERVER
       public boolean saveFile(String name) {
            File file = new File(name);
            boolean success = false;
            try {
                BufferedWriter bw = new BufferedWriter(new FileWriter(olbFile));
                bw.write(olv.toOLBString());
                bw.close();
                success = true;
            } catch (IOException e) {
               System.out.println(e);
            }
            return success;
        }
    ou le serveur se contente de faire un throws de son exception et c'est le client qui se charge de la catcher et de la loguer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //SERVER
       public void saveFile(String name) throws IOException  {
            File file = new File(name);
            BufferedWriter bw = new BufferedWriter(new FileWriter(olbFile));
            bw.write(olv.toOLBString());
            bw.close();
        }

    Quel serait la facon de faire la plus "propre" ?? merci pour vos avis.

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Le traitement correct des exceptions IO est expliqué dans la (un indice : le mot-clé "finally")
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 22
    Par défaut
    En fait ma question ne porte pas sur l exception IO, (jaurais pu prendre n importe quelle exception) mais plutot sur le mecanisme d'envoi d erreur qu'il est preferable d utiliser dans une archi client server. En gros en cas d erreur, faut il que le serveur renvoie une exception au client, ou doit il se contenter de renvoyer un code retour d erreur exemple valeur -1 pour une fonction qui doit renvoyer un entier et qui echoue.

  4. #4
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Je n'ai pas de vrai réponse, mais je dirais que ça dépend de ce que tu veux faire au niveau client ... en, gros quel est le besoin ? (il vaut mieux répondre au besoin que de répondre à des critères "esthétiques" du code)

    Y-a-t'il une utilité pour le client à recevoir un objet Exception ? Quels traitements supplémentaires ferais tu ? afficher un message d'erreur précis ?

    Si tu n'en a pas vraiment l'utilité, contente toi de gérer les erreurs par un code retour ... après selon les méthodes que tu appelles l'intérêt n'est peut être pas le même ?

    Pour le saveFile() le client a-t'il besoin savoir si ok ou ko ou il a aussi besoin de savoir pourquoi ça na pas marché, à quel endroit ... ?

Discussions similaires

  1. [Procédures stockées] Bonnes pratiques de gestion des erreurs
    Par jbrasselet dans le forum Développement
    Réponses: 4
    Dernier message: 04/02/2009, 00h14
  2. Gestion des erreurs, et remonté vers le client
    Par yoskater dans le forum JSF
    Réponses: 10
    Dernier message: 13/02/2008, 15h57
  3. [J2EE/JSP] Gestion des erreurs avec une base SQL server 2005
    Par critok dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 30/04/2006, 16h57
  4. [VB.NET]La bonne gestion des forms
    Par Wintermute dans le forum Windows Forms
    Réponses: 11
    Dernier message: 13/01/2004, 16h35
  5. [LG]gestion des erreurs
    Par frontin dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2003, 22h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo