51 votes

Java - Comment faire Python's Try Except Else

Comment puis-je faire un essai sauf ailleurs en Java comme je le ferais en Python ?

Exemple:

 try:
   something()
except SomethingException,err:
   print 'error'
else:
   print 'succeeded'

Je vois try and catch mentionné mais rien d'autre.

33voto

Ryan Ische Points 1381

Je ne suis pas entièrement convaincu que je l'aime, mais ce serait l'équivalent de Python. Il élimine le problème identifié en mettant le code de réussite à la fin du bloc try.

 bool success = true;
try {
    something();
} catch (Exception e) {
    success = false;
    // other exception handling
}
if (success) {
    // equivalent of Python else goes here
}

9voto

matiascelasco Points 56

Et ça?

 try {
    something();
} catch (Exception e) {
    // exception handling
    return;
}
// equivalent of Python else goes here

Bien sûr, il y a des cas où vous voulez mettre plus de code après le try/catch/else et cette solution ne convient pas, mais cela fonctionne s'il s'agit du seul bloc try/catch de votre méthode.

3voto

jjnguy Points 62123

Bien qu'il n'y ait aucun moyen intégré de faire cette chose exacte. Vous pouvez faire quelque chose de similaire pour obtenir des résultats similaires. Les commentaires expliquent pourquoi ce n'est pas exactement la même chose.

Si l'exécution des somethingThatCouldError() réussit, YAY!! sera imprimé. S'il y a une erreur, SAD sera imprimé.

 try {
    somethingThatCouldError();
    System.out.println("YAY!!");
    // More general, code that needs to be executed in the case of success
} catch (Exception e) {
    System.out.println("SAD");
    // code for the failure case
}

Cette méthode est un peu moins explicite que Python. Mais il obtient le même effet.

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