In Java, wenn der Versuch und schließlich Rückgabeberechnungen enthält, welche Ausführungssituation ist, ob der Code endlich ausgeführt wird, und einige sagen, dass er nicht ausgeführt werden kann. ? Jetzt erklären wir es mit dem folgenden Beispiel:
Der erste Fall: Der Versuch enthält die Return -Anweisung und enthält sie schließlich nicht.
public class testtry {static String S = ""; {System.out.println ("try ......");Hier definieren wir eine Zeichenfolge, die "A" zu S in Versuch zuweisen, und geben Sie sie direkt zurück und zuweisen "B" in schließlich. Im Folgenden finden Sie die Ergebnisse der Ausführung
Versuchen Sie ..... 17 B 8 a
Wir haben festgestellt, dass das Endergebnis A ist, aber B mit Priorität über a gedruckt wird. Durch das Debugging-Debugg-Debuggen stellten wir fest, dass der Code in der Ausführung der Rückgabe die Rückgabe schließlich ausgeführt wird und die Rückgabeerklärung ausgeführt wird. Wenn die Rückgabeerklärung endlich enthalten ist, was wird uns die zweite Situation ansehen.
Der zweite Fall: Versuchen Sie und schließlich Rückgabeanweisungen.
public class testtry {static String S = ""; {System.out.println ("try ......");Welche Art von Ergebnissen treten auf, wenn S = "B" endlich geändert werden kann, um S = "B" zurückzugeben. Ist die Saite S a oder B?
Versuchen Sie ..... 8 b
Wir fanden heraus, dass das endgültige Druckergebnis b ist.
Wir wissen, dass die Rückgabeanweisung in einer bestimmten Methode verwendet wird. , mit der die Methode zu diesem Zeitpunkt beendet wird.
public int print () {int c = 1; (Ausnahme E) {E.PrintstackTrace (); C;Das Ergebnis der Programmausführung ist:
laufen:
Versuchen Sie die Ausführung ...
Endlich ausführen ...
3
Erfolgreich gebaut (Gesamtzeit: 0 Sekunden)
Beachten Sie, dass es in den Positionen 2 und 3 nur eine Rückgabeanweisung geben kann, und es muss eine Rückgabeanweisung in 2, 3 und 4 geben. Wenn 2 ausgeführt wird, endet die Methode und die Anweisung bei 3 kann nicht ausgeführt werden.
Wenn der Try -Anweisung -Block bei 1 ausgeführt wird, wird der Rückgabewert der Funktion in einer anderen temporären Variablen gespeichert (verschiedene Variablen von C, sein Wert beträgt 102). Ein weiterer Anweisungsblock wird bei 2 auftreten, und der Rückgabewert wird in der temporären Variablen gespeichert (Wert ist 3).
public int print () {int c = 1; -1} endlich {c ++;Im obigen Code gibt es im schließlich Anweisungsblock keine Rückgabeanweisung.
Run: TryFinally102 erfolgreich gebaut (Gesamtzeit: 0 Sekunden)
Schlussfolgerung: 1. Unabhängig davon, ob es eine Rückgabeerklärung im Versuch gibt, wird die endgültige Erklärung definitiv ausgeführt (es ist schließlich und der Name gut).
2. Wenn es keine Rückgabeanweisung gibt und es eine Rückgabe gibt, wird der Code in der Ausführung der Rückgabeanweisung zuerst ausgeführt, und dann ist die Rückgabeerklärung in Versuch; In schließlich wird eingeschlossen, wird es direkt zurückgegeben und die Return -Anweisung im Versuch nicht mehr ausführen.