Normalerweise Auftragsausführung ausführen, um von try-catch-finally
ersten try
ist, dann, wenn exception
trows und gefangen wird die catch
execute
. Wenn die Ausnahme abgefangen wird oder nicht, wird finally
immer ausgeführt.
Wenn return
in Ihrem try
, wird die Ausführung in try
dort stoppen und finally
ausführen. wenn exception
wirft und davor gefangen return
normale Ausführungsreihenfolge folgt.
Lassen Sie uns laufen Code folgende
public static void main(String[] args) {
String[] arr=getInfo();
for(String i:arr){
System.out.println(i);
}
}
public static String[] getInfo(){
String[] arr=new String[3];
try {
arr[0]="try";
return arr;
}catch (Exception e){
arr[1]="catch";
return arr;
}finally {
arr[2]="finally";
return arr;
}
}
heraus gesetzt
try // return in try
null
finally // returning value in finally.
diese nun aus der Sie alles setzen erklären. finally
läuft, während es eine return
in try
gibt.
Wenn es eine System.exit(0)
in Ihrem try
, finally
wird nicht ausgeführt werden.
Warum versuchst du es nicht selbst? Dies ist trivial zu testen. – Grodriguez
@Grodriguez danke – Nani