finally語句塊一定會被執行嗎


finally語句塊一定會被執行嗎? 答案: 不一定

1. 發生異常的代碼必須在try 代碼塊中,才有可能被執行

public class MyTest {

    public static void main(String[] args) {

        System.out.println("main 代碼塊中的執行結果為:" + myMethod());
    }

    public static int myMethod() {

        int i = 0;
        int[] num = { 1, 2, 3 };


        System.out.println(num[3]);
        try {
            System.out.println("try 代碼塊被執行!");
            return 0;
        } catch (Exception e) {
            System.out.println("catch 代碼塊被執行!");
            return 0;
        } finally {
            System.out.println("finally 代碼塊被執行!");
return 2; } } }

2. 

public class MyTest {
 
    public static void main(String[] args) {
 
        System.out.println("main 代碼塊中的執行結果為:" + myMethod());
    }
 
    public static int myMethod() {
 
        int i = 6;
        try {
            System.out.println("try 代碼塊被執行!");
 
            //i = i/0;
 
            return 1;
        } catch (Exception e) {
            System.out.println("catch 代碼塊被執行!");
            return 2;
        } finally {
            System.out.println("finally 代碼塊被執行!");
        }
 
    }
 
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM