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 :

Lever une exception contenue dans un if ?


Sujet :

avec Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2007
    Messages : 165
    Points : 73
    Points
    73
    Par défaut Lever une exception contenue dans un if ?
    Bonjour,

    Je voudrais faire cela :

    Citation Envoyé par Ce que je veux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    try{ if(!Tcalcul[i].equals("+"))}
    catch( java.lang.ArrayIndexOutOfBoundsException e){ }
    {
    //ce que je fais dans le if
    }
    Le problème c'est que NetBeans me met "Illegal start of expression"
    Est-ce possible de lever une exception contenue dans un if ?
    Si oui comment ?

  2. #2
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Le code suivant fonctionne très bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    try {
        if (!Tcalcul[i].equals("+")) {
            // ce que je fais dans le if
        }
    } catch( java.lang.ArrayIndexOutOfBoundsException e) {
    }

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2007
    Messages : 165
    Points : 73
    Points
    73
    Par défaut
    C'est surement que mon "try" ne devait pas prendre tout le if. Je ne sais pas pourquoi il ne voulait pas

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2007
    Messages : 165
    Points : 73
    Points
    73
    Par défaut
    Désolé pour mon double poste, mais autrement le topic ne sera pas UP.
    Alors oui le try{}catch(){} marche mais après tout mes if en dessous ne vont plus !

    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
           private void calcul(String[] Tcalcul) {
                //initialise les variables
                            String sTempChiffre = "";
                            double tempChiffre = 0;
                            double tempChiffre2 = 0;
                            String signe = "";
     
                //tant quil est plus petit que la longueur du tableau
                for(int i = 0; i< Tcalcul.length+1; i++){
     
                    //si c'est un chiffre ou un point
                        if (!Tcalcul[i].equals("+") && !Tcalcul[i].equals("-") && !Tcalcul[i].equals("*") && !Tcalcul[i].equals("/") && !Tcalcul[i].equals("")) {
                            //alors on ajoute à un string le chiffre ou le point -> sTempChiffre
                            sTempChiffre = sTempChiffre + Tcalcul[i];
                            System.out.println("sTempChiffre = " + sTempChiffre);
                        }
     
                    //si c'est vide
                    else if (Tcalcul[i].equals("")){
                    }
                    //si c'est un + - * /
                    else{
                        System.out.println("egal"+Tcalcul[i]);
                        //si la variable tempChiffre est vide
                        if(tempChiffre == 0){
                        //alors on met le sTempsChiffre en int
                        tempChiffre = Double.parseDouble(sTempChiffre);
                        }
                        //la variable est deja remplis
                        else {
                            tempChiffre2 = Double.parseDouble(sTempChiffre);
                        }
                        //on vide sTempChiffre
                        sTempChiffre = "";
                        //on fait le calcul (avec des if)
                        //si on ne connais pas le premier signe
                        if(signe.equals("")){
                            signe = Tcalcul[i];
                        }
                        //si oui on calcul
                        else if(!signe.equals("")){
                            if(signe.equals("+")){
                                result = tempChiffre + tempChiffre2;
                                tempChiffre = 0;
                                tempChiffre2 = 0;
                                signe = "";
                            }
                            else if(signe.equals("-")){
                                result = tempChiffre - tempChiffre2;
                            }
                            else if(signe.equals("*")){
                                result = tempChiffre * tempChiffre2;
                            }
                            else if(signe.equals("/")){
                                result = tempChiffre / tempChiffre2;
                            }
                            else{
                            }
                        }
                        else{
     
                        }
                    }
     
                }
     
                //on passe la reponse en texte
                sResult = "";
                sResult += result;
                container_NORTH._reponse.setText(sResult);
            }
    Si je catch le premier if, ce qui est en dessous n'iras plus.
    Pourquoi ?

  5. #5
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Parce que si une exception est levée alors le traitement contenu dans le try est interrompu. Plutôt que faire un try/catch global, limite le à l'endroit de premier if.
    En même temps c'est une erreur dans ton cas de compter sur le lancement d'une exception, il serait plus simple et efficace de tester l'index par rapport à la taille du tableau.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2007
    Messages : 165
    Points : 73
    Points
    73
    Par défaut
    Je voulais que la boucle s'exécute une fois de plus que le nombre de case du tableau mais je vais changer de technique.

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

Discussions similaires

  1. [VBA] utiliser une macro contenue dans un autre classeur
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 01/02/2006, 18h46
  2. [SQL]Lever une exception sans planter le code
    Par Titouf dans le forum Oracle
    Réponses: 2
    Dernier message: 25/01/2006, 15h28
  3. Réponses: 6
    Dernier message: 29/07/2005, 11h12
  4. [JAR] instancier une Image contenue dans un jar
    Par celine31 dans le forum Général Java
    Réponses: 3
    Dernier message: 03/04/2005, 15h55
  5. Catcher une exception lancée dans un plugin
    Par :Bronsky: dans le forum C++
    Réponses: 8
    Dernier message: 18/01/2005, 00h38

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