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 :

Exception dans try{} catch{}


Sujet :

Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 152
    Points : 64
    Points
    64
    Par défaut Exception dans try{} catch{}
    Salut !

    J'aimerais mettre dans ma fonction une Exception (NumberFormatExecption) qui aura pour but de continuer le programme si l'utilisateur introduit un string au lieu d'un int.

    Plus précisément, dans ma fonction j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    try{
    int p = Integer.parseInt(lireEntree());
    }
    catch(NumberFormatExecption e){
    System.out.println(e.getMessage()+ " veuillez ressayer");
    }
    lireEntre() est juste une méthode pour capturer ce que l’utilisateur entre dans le terminal.

    Donc l'erreur que ça me fait à la compilation c'est que la suite du programme ne reconnait pas la variable p, ça fait comme si j'avais supprimer l'affectation de p mais que je l'utilise quand même par la suite.


    Sauriez-vous me dire où est l'erreur ?

    Merci d'avance.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    Citation Envoyé par Raikyn Voir le message



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    int p ;
     
    try{
      p = Integer.parseInt(lireEntree());
    }
    catch(NumberFormatExecption e){
    System.out.println(e.getMessage()+ " veuillez ressayer");
    }

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 152
    Points : 64
    Points
    64
    Par défaut
    Maintenant j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error: variable p might not have been initialized

  4. #4
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Ça me parait pourtant clair comme message

    Tu dois donner une valeur par défaut à ta variable si tu comptes t'en servir en dehors du block try/catch, car en cas d'erreur lors du formatage, ton code va continuer de s’exécuter alorsla variable p ne contiendra aucune valeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    int p = -1; 
    
    try {   
      p = Integer.parseInt( lireEntree() );
     } 
    catch(NumberFormatExecption e) {
      System.out.println(e.getMessage()+ " veuillez ressayer"); 
    }
    
    if( p != -1 )
      // Traitement avec p
    else
      // --

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 152
    Points : 64
    Points
    64
    Par défaut
    Ok merci !

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 557
    Points : 21 616
    Points
    21 616
    Par défaut
    Encore mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    try {   
      int p = Integer.parseInt( lireEntree() );
     
      // Traitement avec p
    } 
    catch(NumberFormatExecption e) {
      System.out.println(e.getMessage()+ " veuillez ressayer");
    }
    // fin. Ici la méthode se termine.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    oui, mais alors p est local au bloc try. Il souhaite pouvoir l'utiliser hors aussi hors du bloc try

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 557
    Points : 21 616
    Points
    21 616
    Par défaut
    Il souhaite le faire, mais il ne faut pas le faire. Donc il doit cesser de souhaiter le faire.

    (Enfin, il ne faut pas, c'est pas non plus super absolu comme règle, bien sûr. Seulement, c'est moins bien que le contraire. Autant faire les choses directement comme elles devraient être.)
    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. solution pour insérer plusieur throw dans try catch
    Par keokaz dans le forum Langage
    Réponses: 4
    Dernier message: 09/03/2013, 18h39
  2. Comment définir l'exception dans un try/catch
    Par christophe_halgand dans le forum MATLAB
    Réponses: 4
    Dernier message: 22/01/2013, 09h25
  3. Finaly dans try catch ?
    Par olibara dans le forum C#
    Réponses: 17
    Dernier message: 03/12/2009, 22h14
  4. [POO] Exception et "try catch"
    Par XenoDeus dans le forum Langage
    Réponses: 6
    Dernier message: 04/02/2008, 09h31
  5. Exception & Try..catch
    Par PurL dans le forum C++Builder
    Réponses: 2
    Dernier message: 11/12/2002, 15h35

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