92 votes

Pourquoi utiliser enfin au lieu du code après la capture

Pourquoi faire cela

Au lieu de cela

100voto

Parce que si une exception est levée**, aucun code n’est généré après l’exécution du bloc***, sauf si* l’exception est interceptée. Un bloc est toujours exécuté, peu importe ce qui se passe à l’intérieur de votre `` bloc.

21voto

Bert F Points 27237

Parce que si une exception est levée,

  • Le code de la clause finale s’exécutera au fur et à mesure que l’exception se propage vers l’extérieur, même si l’exception abandonne le reste de l’exécution de la méthode ;
  • Le code après le bloc try/catch ne sera pas exécuté à moins que l’exception ne soit interceptée par un bloc catch et ne soit pas relancée.

11voto

Aditi Garg Points 84

Selon HeadFirst Java, un bloc final s’exécutera même si le bloc try ou catch a une instruction return. Flow saute pour finalement puis revenir pour revenir.

10voto

hvgotcodes Points 55375

Parce qu’il garantit que les choses dans le bloc final sont exécutées. Les choses après les prises peuvent ne pas être exécutées, disons, par exemple, qu’il y a une autre exception dans le bloc de capture, ce qui est très possible. Ou vous faites simplement ce que vous avez fait et lancez une exception enveloppant l’exception d’origine.

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