73 votes

Comment puis-je sortir d'un bloc try/catch sans lever d'exception en Java

J'ai besoin d'un moyen de sortir du milieu du bloc try/catch sans lever d'exception. Quelque chose qui est similaire à la pause et continue dans les boucles. Est-ce possible?

J'ai eu des idées étranges sur la levée d'une exception personnalisée (la nommant "BreakContinueException") qui ne fait rien dans son gestionnaire de capture. Je suis sûr que c'est très tordu.

Alors, une solution simple que je ne connais pas ?

27voto

dacwe Points 26160

Vous pouvez toujours le faire avec un break partir d'une construction de boucle ou un break étiqueté comme spécifié dans la réponse aioobies.

 public static void main(String[] args) {
    do {
        try {
            // code..
            if (condition)
                break;
            // more code...
        } catch (Exception e) {

        }
    } while (false);
}

7voto

Aaron Digulla Points 143830

Il y a plusieurs façons de le faire :

  1. Déplacez le code dans une nouvelle méthode et return partir de celle-ci

  2. Enveloppez le try/catch dans une boucle do{}while(false);

2voto

Dans cet exemple dans le bloc catch, je change la valeur du compteur et il se brisera pendant le bloc :

 class TestBreak {
    public static void main(String[] a) {
        int counter = 0;

        while(counter<5) {
            try {
                counter++;
                int x = counter/0;
            }
            catch(Exception e) {
                counter = 1000;    
            }
        }
    }
}k

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