Programmation java:Exception in thread "AWT-E

Bonjour, jai cette exeption qui m'affiche quand je veut parser un string en entier.
et pourtant je saisie entier dans le text field de ma fenetre
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
le code

if (e.getSource()==BAjouter) {
String Snom=nomEdit.getText().trim();
String Sprenom=nomEdit.getText().trim();
String Sage=ageEdit.getText();

/* if (!Snom.isEmpty() && !Sprenom.isEmpty() && !Sage.isEmpty()){*/
try {
Employe objEmp =new Employe(nomEdit.getText().trim(),prenomEdit.getText().trim(),Integer.parseInt(ageEdit.getText()));
listeEmp.addEmploye(objEmp);

merci pour aide:
je cherche depuis plusiers jours son succé.

2 réponses

  1. Modérateur
    Tu devrais filtrer l'exception :

    int convertir(String s, int defaut)
    {
        try
        {
            return Integer.parseInt(s);
        }
        catch (NumberFormatException e)
        {
            System.err.println(e);
            return defaut;
        }
    }


    Remarque : tes trim() ne servent pas à grand chose si tu ne t'en sers pas...

    if (e.getSource()==BAjouter)
    {
        String Snom=nomEdit.getText().trim();
        String Sprenom=nomEdit.getText().trim();
        String Sage=ageEdit.getText();
    
        int age = convertir(Sage,-1);
        if (age>=0)
        {
            Employe objEmp =new Employe(Snom,Sprenom,age);
            listeEmp.addEmploye(objEmp);
        }
    }
    1. J'ai toujour le meme probleme
      java.lang.NumberFormatException: For input string: ""
      Erreur de saisie

      j'ai fait un system.out
      Il M'affiche qu'IL a pris un entier. quand j'ajoute a ma liste une autre personne avec les memes donneé. il affiche erreur du faite qu'un employe de ces meme valeurs existe déja.
      donc pourquoi il pointe sur cette erreur
      Jai ajouté a ton code
      int convertir(String s, int defaut)
      {
      try
      {
      return Integer.parseInt(s);
      }
      catch (NumberFormatException e)
      {
      System.err.println(e);
      System.out.println("Erreur de saisie");
      return defaut;
      }
      }

      il m'affiche toujour le meme scénarion

      java.lang.NumberFormatException: For input string: ""
      Erreur de saisie

      Merci pour votre réponse
      1. Modérateur
        Il faut que tu enlèves le System.err.println(e) si tu ne veux pas avoir le message, mais l'exception ne devrait plus être levée. Et tu devrais donc obtenir la valeur par défaut (-1 dans mon code)