首先,先說說異常的分類:
在java中,任何異常都屬於java.lang.Throwable類或其子類,Throwable類又分為Exception類和Error類。
其中Exception類用於用戶所出現的各種異常,它也可用來創建自定義類型的類。
Error類異常是指java程序運行時與運行是系統本身有關的錯誤,這些異常通常是災難性的,不是程序可以控制的。
積極異常處理機制主要是使用try...catch.程序先執行try中的語句,當出現異常時,停止當前的執行,轉入到catch中執行語句(一個catch塊只能處理一種異常類)。
通常會在catch後面跟一個final,無論try和catch中是否發生異常,finally中的語句都會執行,下面詳細講解一下return的用法
public class throwable {
public static int add(int num){
try{
num++;
System.out.println("This is try num:"+num);
return num++;
}catch (Exception e){
e.printStackTrace();
return num;
}finally {
num++;
System.out.println("This is finally num:"+num);
}
}
public static void main(String args[]){
System.out.print("out:"+throwable.add(0));
}
}
輸出結果
This is try num:1
This is finally num:3
out:1
public class throwable {
public static int add(int num){
try{
num++;
System.out.println("This is try num:"+num);
return num++;
}catch (Exception e){
e.printStackTrace();
return num;
}finally {
num++;
System.out.println("This is finally num:"+num);
return num;//加入return
}
}
public static void main(String args[]){
System.out.print("out:"+throwable.add(0));
}
}
輸出結果
This is try num:1
This is finally num:3
out:3
根據兩個例子,很明顯可以看出try執行return語句之後,並沒有立即返回,而是執行了finally中的語句,當finally中沒有return時,執行完之後直接返回;
當finally中有return時,執行finally中的return,不再執行try中的return.
消極的處理方式是指用throw和throws來實現。throw會主動拋出一個異常,並終止程序的運行。
throws用在方法後面,表示聲明一個異常,告訴方法的使用者方法中出現了哪些異常,讓使用者根據自己的情況處理這些異常。
throw是語句拋出一個異常:throw (異常對象)
throws是方法可能拋出異常的聲明;(public void do(int num) throws Exception1...)
throw語句用在方法體內,表示拋出異常,由方法體內的語句處理。
throws語句用在方法聲明後面,表示再拋出異常,由該方法的調用者來處理。
throw是具體向外拋異常的動作,所以它是拋出一個異常實例。
throws主要是聲明這個方法會拋出這種類型的異常,使它的調用者知道要捕獲這個異常。
throws說明你有那個可能,傾向。
throw的話,那就是你把那個傾向變成真實的了
原創面經&技術分享&網際網路資訊熱點&模擬面試&內推
Java、大數據、前端、產品、數據結構&算法