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; } }
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!