try-catch-finally語句中用什麼方法退出或者不執行finally就直接退出並且return和finally的執型順序是怎樣的
阿新 • • 發佈:2019-01-02
正常來說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");
}
}
}