50 votes

Une pause ne laisse-t-elle que le try/catch ou la boucle environnante ?

Si j'ai try ... catch bloc à l' intérieur d' un while boucle, et # sa break dans le catch , ne l' exécution du programme laisser la boucle ?

Un péché:

 while (!finished) {
    try {
        doStuff();
    } catch (Exception e) {
        break;
    }
}

Une exception levée dans doStuff() quittera-t-elle la boucle ?

72voto

fmucar Points 6937

Oui, il sera. Le moyen le plus simple de le savoir est de l'essayer.

 public static void main(String[] args) {
        int i=0;
        while (i<10) {
            System.out.println(i);
            try {
                if(i ==7){
                    throw new Exception();
                }
                i++;
            } catch (Exception e) {
                break;
            }
        }
        System.out.println("out of loop");
    }

il imprimera

 0
1
2
3
4
5
6
7
out of loop

La sortie commence par 0.

4voto

Alnitak Points 143355

Oui, ça va casser la boucle.

Mais pourquoi ne pas faire :

 finished = true;

au lieu?

1voto

Xion Points 11130

Oui. break existe et les instructions switch

1voto

Bob Cross Points 13552

Une exception sera-t-elle levée dans doStuff() sortir de la boucle ?

Pas à pas, voici ce qui va se passer :

  1. L'exception est levée dans doStuff()
  2. Votre gestionnaire "Eat all Exceptions" interceptera l'exception.
  3. L'instruction "break" quittera la boucle while.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X