Cet article étudie principalement la relation entre enfin et retour en Java. L'introduction et les exemples spécifiques sont illustrés ci-dessous.
1. Il y a une instruction comme System.exit (0) dans le bloc d'essai. Puisqu'il met fin à la machine virtuelle Java JVM, même le JVM est arrêté et tout se termine. Bien sûr, les énoncés finaux ne seront pas exécutés.
2. Dans d'autres cas, les déclarations finalement seront inévitablement exécutées. Par conséquent, certaines opérations de libération de ressources peuvent être effectuées ici.
(1) Le retour dans finalement remplacera le retour dans Try / Catch.
(2) Il y aura un avertissement lors de la rédaction d'une instruction de retour enfin, car il empêchera la fonction de lancer une exception et de le renvoyer normalement.
package com.demo.test; classe publique enfinAndrenturn {private static void enfinAndRyrereturn () {try {System.out.println ("enfinAndRyreTurn -> try"); return;} catch (exception e) {System.out.println ("enfinAndReturn -> Catch");} enfin {System.out.Println ("EnfinArtryRyreTrUr - Enfin ");}} private static void enfinAndCatchReturn () {try {System.out.println (" enfinAndCatchReturn -> try "); lancer une nouvelle exception ();} catch (exception e) {System.out.println ("EnfinandCatchReturn -> Catch"); return;} enfin {System.out.println ("EnfinAndCatchreturn -> enfin");}} // L'instruction finale est exécutée après la déclaration de retour de l'essai et avant le retour. String statique privé tryReturn () {String str = "initialisé"; try {System.out.println ("TryReturn -> try"); str = "try"; return str;} catch (exception e) {System.out.println ("tryreturn -> catch"); str = "catch";} enfin {System.out.println ("tryreTr -> enfin"; Stry;} return. null;} chaîne statique privée tryreTurnandFinallyReturn () {String str = "initialisé"; try {System.out.println ("TryReturnandfinallyreturn -> try"); str = "try"; return str;} catch (exception e) {System.out.println ";} {System.out.println ("TryReturnandfinallyReturn -> Enfin"); / * * Avertissement: le bloc final ne se termine pas normalement * Si l'instruction de retour est incluse dans le bloc enfin, même si le bloc de capture précédent retags, l'instruction appelant la méthode n'obtiendra pas l'exception. * / str = "enfin"; retour str;}} chaîne statique privée trythrowandfinallyreturn () lève une exception {string str = "initialisé"; try {System.out.println ("trythrowandfinallyreturn -> try"); str = "try"; lance une nouvelle exception ();} capture (exception E) = "Catch"; lancer une nouvelle exception ();} enfin {System.out.println ("Trythrowandfinallyreturn -> Enfin"); / * * Avertissement: le bloc final ne termine pas normalement * Si le bloc final contient une instruction de retour, même si le bloc de capture précédent réplate l'exception, la déclaration appelant la méthode n'obtiendra pas l'exception remontée par le bloc de catch, mais que la valeur de retour ne s'approche pas. * / str = "enfin"; return str;}} private static void enfinAndruntimeException () {try {System.out.println ("enfinAndRuntimeException -> try"); lancer un nouveau runtimeException ();} catch (exception e) {System.out.println ("enfinAndruntimeException -> catch");} enfin {system.out.println ("enfinAndruntimeException -> enfin");}} privé static void enfin enfin System.exit (0); termine la machine virtuelle Java JVM. Même le JVM est arrêté et tout est terminé. Bien sûr, les énoncés finaux ne seront pas exécutés. System.exit (0);} catch (exception e) {System.out.println ("enfinAndexit -> Catch");} enfin {System.out.println ("FinainAndexit -> enfin");}} public static void Main (String [] args) {enfinAndRyreTrUrn (); System.out.println (); EnfinAndCatchReturn (); System.out.println (); System.out.println ("TryReturn Return ->" + tryReturn ()); System.out.println (); System.out.println ("TryReturnandfinallyreturn Return () {System.out.println ("TryThrowAndFinallyReturn return ->" + trythrowAndFinallyReturn ());} catch (exception e) {e.printStackTrace ();} System.out.println (); EnfinAndRuntimeException (); System.out.println (); enfinAndexit ();}}Résultats de la démonstration:
Ce qui précède est l'intégralité du contenu de cet article sur l'analyse enfin et le retour en Java. J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!