Maison > Java > javaDidacticiel > Devriez-vous utiliser le contrôle de flux dans les blocs Enfin de Java ?

Devriez-vous utiliser le contrôle de flux dans les blocs Enfin de Java ?

Patricia Arquette
Libérer: 2024-12-24 13:34:25
original
313 Les gens l'ont consulté

Should You Use Flow Control in Java's Finally Blocks?

La pratique controversée du contrôle de flux dans les blocs Enfin en Java

Il est largement admis que l'inclusion d'instructions de retour ou d'autres formes de contrôle de flux dans un bloc final en Java est une pratique douteuse. Pourtant, malgré ce consensus général, certaines circonstances peuvent justifier son utilisation.

Un exemple convaincant provient des situations où des exceptions se produisent dans un niveau de code plus profond, mais doivent être propagées vers le haut. Considérez l'extrait de code suivant :

Object problemMethod() {
    Object rtn = null;
    try {
        rtn = somethingThatThrewAnException();
    }
    finally {
        doSomeCleanup();
        return rtn;
    }
}
Copier après la connexion

Dans ce cas, une exception non interceptée se produisant dans la méthode SomethingThatThrewAnException est à nouveau émise. Cependant, l'instruction return dans le bloc enfin abandonne prématurément le processus de propagation de l'exception, l'empêchant d'atteindre l'appelant de la méthode problématique.

Ce scénario met en évidence les dangers potentiels de l'arrêt prématuré de la propagation de l'exception. Bien qu'il soit techniquement permis d'utiliser le contrôle de flux dans les blocs final, cela doit être évité pour des raisons de lisibilité et de maintenabilité du code. Les exceptions doivent toujours être gérées et propagées de manière appropriée, et s'appuyer sur des blocs final à cette fin peut conduire à un comportement inattendu et alambiqué.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal