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後面的代碼就不會執行了。