Java拋出異常執行順序

package com.chow.spirngbootdemo;

/**
 * @author Herman  Email: [email protected]
 * @date 2017/01/04 09:43
 */
public class TestMain {
    public static void main(String[] args) {
        new TestMain().a();

    }

    public void a() {
        try {
            b();
        } catch (Exception e) {
            System.out.println("A,Catch執行了");
        } finally {
            System.out.println("A,Finally執行了");
        }
        System.out.println("A.尾巴執行");
    }

    public void b() {

        try {    
            // 製造異常
            int i = 1;
            int j = 0;
            int f;
            f = i / j;
        } catch (Exception e) {
            System.out.println("B,Catch執行了");
            return;
        } finally {
            System.out.println("B,Finally執行了");
        }
        System.out.println("B.尾巴執行");
    }
}


B,Catch執行了
B,Finally執行了
A,Finally執行了
A.尾巴執行

這例子說明

1、拋出異常的時候,內部catch已經處理了,外面的的catch就不執行了,但是內外finally內部的代碼都會執行。

2、catch中如果有return。會執行finally的內部代碼,finally後面的代碼就不會執行了。

 

如果您喜歡這篇文章請在下面點個贊和收藏。謝謝您的支持!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章