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

Langage Java Discussion :

Je ne comprends pas le message d'erreur


Sujet :

Langage Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 173
    Points : 151
    Points
    151
    Par défaut Je ne comprends pas le message d'erreur
    Bonjour,
    je n'arrive pas a comprendre le message d'erreur est ce que qq1 peut essayer de me l'expliquer
    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
     
    java.lang.NumberFormatException: For input string: ""
    	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
    	at java.lang.Integer.parseInt(Integer.java:489)
    	at java.lang.Integer.parseInt(Integer.java:518)
    	at Calculatrice.actionPerformed(Calculatrice.java:189)
    	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
    	at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
    	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
    	at java.awt.Component.processMouseEvent(Component.java:5100)
    	at java.awt.Component.processEvent(Component.java:4897)
    	at java.awt.Container.processEvent(Container.java:1569)
    	at java.awt.Component.dispatchEventImpl(Component.java:3615)
    	at java.awt.Container.dispatchEventImpl(Container.java:1627)
    	at java.awt.Component.dispatchEvent(Component.java:3477)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
    	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
    	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
    	at java.awt.Container.dispatchEventImpl(Container.java:1613)
    	at java.awt.Window.dispatchEventImpl(Window.java:1606)
    	at java.awt.Component.dispatchEvent(Component.java:3477)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
    	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
    J'hesite a joindre le code, parce que je pense que ca va etre fastidieux a le debeuguer vu que vous devez d'abord le decouvrir et il est pas tres cours. Je le rajouterai si vous en avez besoin

    Merci pour l'aide

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Points : 439
    Points
    439
    Par défaut
    bah, c'est pourtant clair, tu essayes de convertir en int (entier) une chaine vide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.NumberFormatException: For input string: ""
    si tu veux qu'on t'aide, poste le code de la méthode actionPerformed de la class Calculatrice.

  3. #3
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il faut apprendre à lire un stacktrace !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.NumberFormatException: For input string: ""
    La chaine "" n'a pas put être convertit en nombre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    at Calculatrice.actionPerformed(Calculatrice.java:189)
    et le problème vient de la ligne 189 du fichier Calculatrice.java...


    Bref tu utilises la méthode Integer.parseInt() sans try/catch, et comme tu lui passes une valeur incorrect (une chaine vide), cela remonte une exception...

    a++

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par amine_en_france
    Bonjour,
    je n'arrive pas a comprendre le message d'erreur est ce que qq1 peut essayer de me l'expliquer
    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
     
    java.lang.NumberFormatException: For input string: ""
    	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
    	at java.lang.Integer.parseInt(Integer.java:489)
    	at java.lang.Integer.parseInt(Integer.java:518)
    	at Calculatrice.actionPerformed(Calculatrice.java:189)
    	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
    	at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
    	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
    	at java.awt.Component.processMouseEvent(Component.java:5100)
    	at java.awt.Component.processEvent(Component.java:4897)
    	at java.awt.Container.processEvent(Container.java:1569)
    	at java.awt.Component.dispatchEventImpl(Component.java:3615)
    	at java.awt.Container.dispatchEventImpl(Container.java:1627)
    	at java.awt.Component.dispatchEvent(Component.java:3477)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
    	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
    	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
    	at java.awt.Container.dispatchEventImpl(Container.java:1613)
    	at java.awt.Window.dispatchEventImpl(Window.java:1606)
    	at java.awt.Component.dispatchEvent(Component.java:3477)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
    	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
    J'hesite a joindre le code, parce que je pense que ca va etre fastidieux a le debeuguer vu que vous devez d'abord le decouvrir et il est pas tres cours. Je le rajouterai si vous en avez besoin

    Merci pour l'aide
    erreur de transformation d'une chaine de caractere en nombre, c'est comme si tu essaye de transformer '12o' en nombre..

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 173
    Points : 151
    Points
    151
    Par défaut
    Je vous joins le code de actionPerformed de la classe Claculatrice

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
     
    public void actionPerformed(ActionEvent e) {
    		if(e.getSource()==but0){
    			a= Integer.parseInt(champs.getText());
    			if(a != 0){
    				champs.setText(champs.getText()+"0");
    			}
    			else{
    				champs.setText("0");
    			}
    		}
     
    		if(e.getSource()==but1){
    			a= Integer.parseInt(champs.getText());
    			if(a != 0){
    				champs.setText(champs.getText()+"1");
    			}
    			else{
    				champs.setText("1");
    			}
    		}
     
    		if(e.getSource()==but2){
    			a= Integer.parseInt(champs.getText());
    			if(a != 0){
    				champs.setText(champs.getText()+"2");
    			}
    			else{
    				champs.setText("2");
    			}
    		}
     
    		if(e.getSource()==but3){
    			a= Integer.parseInt(champs.getText());
    			if(a != 0){
    				champs.setText(champs.getText()+"3");
    			}
    			else{
    				champs.setText("3");
    			}
    		}
     
    		if(e.getSource()==but4){
    			a= Integer.parseInt(champs.getText());
    			if(a != 0){
    				champs.setText(champs.getText()+"4");
    			}
    			else{
    				champs.setText("4");
    			}
    		}
     
    		if(e.getSource()==but5){
    			a= Integer.parseInt(champs.getText());
    			if(a != 0){
    				champs.setText(champs.getText()+"5");
    			}
    			else{
    				champs.setText("5");
    			}
    		}
     
    		if(e.getSource()==but6){
    			a= Integer.parseInt(champs.getText());
    			if(a != 0){
    				champs.setText(champs.getText()+"6");
    			}
    			else{
    				champs.setText("6");
    			}
    		}
     
    		if(e.getSource()==but7){
    			a= Integer.parseInt(champs.getText());
    			if(a != 0){
    				champs.setText(champs.getText()+"7");
    			}
    			else{
    				champs.setText("7");
    			}
    		}
     
    		if(e.getSource()==but8){
    			a= Integer.parseInt(champs.getText());
    			if(a != 0){
    				champs.setText(champs.getText()+"8");
    			}
    			else{
    				champs.setText("8");
    			}
    		}
     
    		if(e.getSource()==but9){
    			champs.setText(champs.getText()+"9");
    		}
     
    		if(e.getSource()==but12){
    			res = buf[0]+buf[1];
    			Integer resu = new Integer(res);
    			champs.setText(resu.toString());
    		}
     
    		if(e.getSource()==but15){
    			buf[n]='/';
    			champs.setText("0");
    			n++;
    		}
     
    		if(e.getSource()==but14){
    			buf[n]='*';
    			champs.setText("0");
    			n++;
    		}
     
    		if(e.getSource()==but13){
    			buf[n]='-';
    			champs.setText("0");
    			n++;
    		}
     
    		/*if(e.getSource()==but11){
    			buf[n]="+/-";
    			champs.setText("0");
    			n++;		
    		}*/
     
    		if(e.getSource()==but10){
    			champs.setText(champs.getText()+".");
    			buf[n]='.';
    			n++;
    		}
     
    		if(e.getSource()==but16){
    			champs.setText("0");
    			buf=null;
    			buf = new int[10];
    	    }
     
    		if(e.getSource()==but17){
    			buf[n]=Integer.parseInt(champs.getText());
    			n++;
    			champs.setText("0");
    	    }
    	}
     
    }
    Pour le truy/catch je ne suis jamais servi (je debute au cas ce ne serait pas encore vue :p)

    sinon je ne trouve pas de "" qui doit etre converti en int et de toute façon tou mes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a=Integer.parseInt(champs.getText());
    sont fait à partir d'un copier coller qui a été testé avant d'etre coller et modifier partout

    Merci


    PS ne pretez pas sd'importance des but13 au but15 ils ne sont pas fini
    le but16 et 17 sont pret (enfin je crois

  6. #6
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Ben si ton champ est vide tes Integer.parseInt(champ.getText()) essayent de convertir chaine vide en int ce qui génère une exception ...

  7. #7
    Membre habitué Avatar de Ksempac
    Inscrit en
    Février 2007
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 165
    Points : 185
    Points
    185
    Par défaut
    Bah le probleme est simple : L'un de tes champs est vide donc l'appel a champs.getText() renvoie "". Ensuite le Parse echoue et lance l'exception.

    Comme on te l'a dit utilise try catch pour reperer l'erreur/eviter le plantage du programme.

    try
    {
    a= Integer.parseInt(champs.getText());

    // Traitement normal de a

    }
    catch(NumberFormatException e)
    {
    // Ici tu peux ecrire un code de traitement de l'erreur, par exemple e.PrintStackTrace() pour afficher l'erreur dans ta console d'erreur ou bien un bete System.out.println("But1 a planté");
    }

    EDIT : Grillé

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 173
    Points : 151
    Points
    151
    Par défaut
    effectrivement suffit d'initilaiser le champs pour qu'il soit non vide

  9. #9
    Membre habitué Avatar de Ksempac
    Inscrit en
    Février 2007
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 165
    Points : 185
    Points
    185
    Par défaut
    Hum je ne connais pas ton programme, mais est ce que l'utilisateur a le droit de modifier les champs ?

    Si oui, mefie toi, il pourrait tres bien vider un champ et replanter a nouveau ton programme. Ou bien il pourrait écrire des lettres la ou tu attend des chiffres...

    Lorsqu'on travaille sur une interface graphique, il faut toujours estimer que l'utilisateur est soit incompetent soit mal intentionné, et donc tout ce qu'il fournit doit etre testé avant d'etre utilisé

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

Discussions similaires

  1. [VBA-Excel] Ne comprends pas le message d'erreur
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/05/2011, 16h49
  2. [Débutant] je ne comprends pas ce message d'erreur
    Par liogo dans le forum MATLAB
    Réponses: 4
    Dernier message: 06/04/2011, 14h37
  3. Je ne comprends pas les messages d'erreur
    Par warezeux dans le forum Débuter
    Réponses: 23
    Dernier message: 17/12/2010, 15h24
  4. je ne comprends pas mon message d'erreur
    Par LeNeutrino dans le forum Windows Forms
    Réponses: 8
    Dernier message: 19/01/2007, 09h44
  5. je ne comprends pas les message d'erreur g++
    Par emmesse dans le forum Autres éditeurs
    Réponses: 8
    Dernier message: 22/09/2006, 16h52

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