1. 程式人生 > >try-catch-finally語句中用什麼方法退出或者不執行finally就直接退出並且return和finally的執型順序是怎樣的

try-catch-finally語句中用什麼方法退出或者不執行finally就直接退出並且return和finally的執型順序是怎樣的

正常來說finally中的程式碼是一定會執行的。他和return的執行順序是在return執行之後但真正返回結果之前的中間執行,finally中新增return語句可以替換掉catch中的return語句從而可以證明這一點。但是我們可以通過制定system.exit(int)強制結束不讓finally執行。

public class Deno1{

public static void main(String args[]){

int a=0;

try{

//a/=0;//出現異常例子會輸出no,,,yes

a*=0;//不出現異常例子會執行輸出yes

}catch(Exception e){

System.out.println("no");

return;//使用return即可退出catch語句但是finally程式碼塊中的內容一定會執行。

}finally{

System.out.println("yes");

}

}

}

如果想不執行finally程式碼塊中的內容需要

public class Deno2{

public static void main(String args[]){

int a=0;

try{

a/=0;//會只輸出yes 跳過finally不會輸出no

}catch(Exception e){

System.out.println("yes");

//不需return;

System.exit(a);//通過這句話可直接終止退出不需在執行finally中的內容輸出的是yes。

}finally{

System.out.println("no");

}

}

}