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 :

actionPerfomed : lever une exception a la main pour la relancer plus haut


Sujet :

Java

  1. #1
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 95
    Points : 110
    Points
    110
    Par défaut actionPerfomed : lever une exception a la main pour la relancer plus haut
    Bonjour a tous,

    Voici mon pb : une fenetre de login, on clique sur le bouton ok, ce qui declenche la methode actionPerfomed de l'action listener :
    dans cette methode je peux intercepter des exception avec des blocs try/catch, neanmoins j'aimerai transmettre ces exception a une fonction appelant la methode qui affiche ma fenetre de login, et donc l'intercepter plus haut.

    J'ai donc essayer de faire la chose suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    actionPerformed(){
    //blabla
    if(login is not ok)
       try{
          throw new LoginException(); 
       }
       catch(LoginException le){
          throw le;
       }
    }
    Seulement le compilateur (NetBeans 6) me dit a la ligne "throw le" : "unhandled exception, must be thrown or declared", a peu de choses pres.

    Comment faire pour faire remonter l'exception a l'exterieur de la methode actionPerformed ?

    Merci d'avance a tous !

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Attention, actionPerformed est appelé par l'EDT, un Thread sur lequel tu n'as pas la main. Il n'est donc ni possible, ni souhaitable, que cette méthode génère une erreur.
    Revoit ta conception !
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 95
    Points : 110
    Points
    110
    Par défaut
    Ok, donc pour reprendre la problematique :
    - fenetre de login avec login et mot de passe
    - on clique sur ok : (actionPerformed)
    - lien avec la base
    - verifications login et mot de passe
    - si mauvais ... ?

    Comment renvoyer le fait que le login n'a pas abouti ?

    Merci d'avance

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Citation Envoyé par manpe Voir le message
    Ok, donc pour reprendre la problematique :
    - fenetre de login avec login et mot de passe
    - on clique sur ok : (actionPerformed)
    - lien avec la base
    - verifications login et mot de passe
    - si mauvais ... ?

    Comment renvoyer le fait que le login n'a pas abouti ?

    Merci d'avance
    Une exception est un problème dans le déroulement du programme. Il ne faut pas l'utiliser comme réponse à l'utilisateur !
    Dans ton cas, peut-être suffit-il d'afficher une fenêtre avec un message d'alerte (cf. javax.swing.JOptionPane#showMessageDialog). Lorsque l'utilisateur ferme le message d'erreur, il se trouve à nouveau devant la fenêtre de login.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 95
    Points : 110
    Points
    110
    Par défaut
    Merci pour ta reponse.

    Ce n'est pas pour renvoyer une reponse a l'utilisateur en fonction de l'exception, mais plutot pour la traiter a un autre endroit de l'application.

  6. #6
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Je ne sais pas si tu as raison, mais en tous les cas, Dinobogan n'a pas tord.

    En l'état, tu ne peux pas remonter, au sens de throws, une exception survenue dans le thread awt.

    Plusieurs approches pour s'en sortir :
    - Relire ce qu'à dit Dinobogan
    - Mémoriser l'exception quelque part, et la relire d'ailleurs pour la traiter
    - Prolonger le système d'évenement d'awt en créant ses propres listener applicatifs.
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

  7. #7
    Membre éprouvé
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Points : 935
    Points
    935
    Par défaut
    Bonjour,

    pourquoi ne pas appeler le traitement directement dans l'actionPerformed ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    actionPerformed(){
       //blabla
       if(login is not ok)
          //appel du traitement
    }

Discussions similaires

  1. [Data] JdbcTemplate ne fait rien, pas même lever une Exception !
    Par Atatorus dans le forum Spring
    Réponses: 3
    Dernier message: 21/07/2009, 17h55
  2. catcher et lever une exception "others"
    Par brassouille dans le forum PL/SQL
    Réponses: 7
    Dernier message: 23/01/2009, 13h27
  3. Lever une exception contenue dans un if ?
    Par rXpCH dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 07/07/2008, 11h44
  4. lever une EXCEPTION pour 2 blocs séparés
    Par atruong dans le forum Oracle
    Réponses: 2
    Dernier message: 05/05/2006, 10h27
  5. [SQL]Lever une exception sans planter le code
    Par Titouf dans le forum Oracle
    Réponses: 2
    Dernier message: 25/01/2006, 15h28

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