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

avec Java Discussion :

Mettre à jour un code java


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    consultant informatique
    Inscrit en
    Août 2018
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : consultant informatique

    Informations forums :
    Inscription : Août 2018
    Messages : 172
    Par défaut Mettre à jour un code java
    Je dois mettre à jour un code en appliquant les règles suivantes:
    Si une exception est levée par s.execute() alors appeler c.rollback()
    et propager l'exception,sinon appeler c.commit()
    Dans tous les cas ,c.closest() doit être appelée avant de quitter la méthode a(Service s,Connection c)

    le code est le suivant:
    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
    public class A {
    	// doit executer le service avec les connections données
     
    	void a(Service s,Connection c) {
    		s.setConnection(c);
    		s.execute();
    	}
     
    }
     
    interface Service{
    	void execute() throws Exception;
    	void setConnection(Connection c);
    }
     
    interface Connection{
    	void commit();
    	void rollback();
    }
     
     
     
    public static void main(String[] args) {
    		Service service=new Service() {
    			public void execute()throws Exception{
    				System.out.println("execute");
    			}
     
     
    			public void setConnection(Connection c) {
    				System.out.println("setConnection");
     
    			}
    		};
    }
    En suivant ces instructions j'ai donc complété en faisant le code suivant:

    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
    void a(Service s,Connection c) throws Exception {
    		s.setConnection(c);
    		s.execute();
                    c.rollback();//doit appeler rollback() si une exception est levée et propager l'exception
                    c.commit();//Sinon appeler c.commit()
                    c.close();//dans tous les cas appeler c.close()
    	}
     
    }
     
    interface Service{
    	void execute() throws Exception;
    	void setConnection(Connection c);
    }
     
    interface Connection{
    	void commit();
    	void rollback();
    }
    j'ai suivi les instructions mais je ne sais pas si c'est juste
    Qu'est ce que vous en pensez svp?

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Hello,

    ben non c'est pas juste.

    rollback() ne doit être appelé que s'il y a une une exception.
    commit() ne doit être appelé que s'il n'y a pas eu d'exception.
    et close() doit toujours être appelé, sous-entendu y compris s'il y a une exception. Donc avec ton code il n'est pas appelé s'il y a une exception.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre très actif
    Homme Profil pro
    consultant informatique
    Inscrit en
    Août 2018
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : consultant informatique

    Informations forums :
    Inscription : Août 2018
    Messages : 172
    Par défaut Re
    Je ne comprends pas là,il y'a bien une exception avec "throws exception" donc
    j'ai appelé rollback();qu'est ce qui est faux dans mon code?je ne vois pas svp.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    void a(Service s,Connection c) throws Exception {
    s.setConnection(c);
    s.execute();
    c.rollback();//doit appeler rollback() si une exception est levée et propager l'exception
    c.commit();//Sinon appeler c.commit()
    c.close();//dans tous les cas appeler c.close()
    }
    ????

  4. #4
    Membre émérite Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 593
    Par défaut
    Citation Envoyé par master MI Voir le message
    Je ne comprends pas là,il y'a bien une exception avec "throws exception" donc
    j'ai appelé rollback();qu'est ce qui est faux dans mon code?je ne vois pas svp.
    Que comprends-tu aux exceptions ??
    La déclaration "throws Exception" dit juste que la méthode est susceptible de transmettre une exception de ce type au code appelant. Point.

    Lit un peu la doc. Par exemple :
    https://anisfrikha.developpez.com/tu...va/exceptions/

  5. #5
    Membre très actif
    Homme Profil pro
    consultant informatique
    Inscrit en
    Août 2018
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : consultant informatique

    Informations forums :
    Inscription : Août 2018
    Messages : 172
    Par défaut Re
    Merci mais Votre lien ne marche pas.
    Sinon comment j'utilise c.rollback(),c.commit() et c.close()
    dans mon code alors?

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Réessaie le lien, il marche parfaitement. Peut-être qu'il y a eu une panne temporaire.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mettre à jour un code avec un nouveau langage
    Par Kawamx dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 02/06/2019, 13h09
  2. Réponses: 1
    Dernier message: 17/05/2019, 17h06
  3. [AC-2007] Est-il possible de mettre à jour du code VBA sans rentrer dedans ?
    Par tibofo dans le forum VBA Access
    Réponses: 5
    Dernier message: 26/10/2010, 18h50
  4. mettre à jour une application java
    Par robert_trudel dans le forum Langage
    Réponses: 5
    Dernier message: 13/04/2007, 19h02
  5. Réponses: 2
    Dernier message: 29/05/2006, 17h02

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