異常總結

異常;是程序在執行過程中發生的錯誤。
異常關鍵字:throw   表示創建一個新的異常對象,交給下一個調用者處理。(用來自定義異常)
throw 關鍵字後面必須跟一個異常類的實例,也就是說必須是throwable類或者其子類的實例,throw+空格+異常類的實例,這個異常會按照Java異常機制中的傳遞規則傳遞,並且最終被處理掉。
1:在方法代碼中拋出一個異常的含義是:在當前的代碼中遇到了一個不知道怎麼處理的情況,所以代碼需要創建一個異常來將這個錯誤描述清楚,並且將這個異常拋出。
2:程序拋出異常後,程序的流程被java異常處理機制接手,直到異常被處理掉,程序再次按照既定順序執行。
package cn.java.zhangshuai.exception;

public class Cup {
private int capacity;

public int getcapactity(){
return capacity;

}
public void setCapacity(int capacity) {//這裏存在着異常,必須拋出一個異常
if(capacity>1000||capacity<0){
Exception  ex=new Exception("杯子的容積不能超過10000或小於0,非法容積爲:"+capacity);
//拋出異常
throw ex;

}
//正常情況下更改cap的值
this.capacity=capacity;
}
}
throws:throws  表示把已經存在的異常對象往拋,交給下一個調用者去處理。throws關鍵字用在方法的聲明中,正是用來表示一個方法有可能會拋出某種或者某些類型的異常。throws關鍵字的用法如下:方法聲明+throws+空格+異常類型+,+異常類型+。。。+方法體
上例修改入下package cn.java.zhangshuai.exception;

public class Cup {
private int capacity;

public int getcapactity(){
return capacity;

}
public void setCapacity(int capacity) throws Exception {
if(capacity>1000||capacity<0){
Exception  ex=new Exception("杯子的容積不能超過10000或小於0,非法容積爲:"+capacity);
//拋出異常
throw ex;

}
//正常情況下更改cap的值
this.capacity=capacity;
}
}

對於在方法中使用了throw關鍵字拋出異常,僅僅有兩種處理方法,一種是使用異常處理機制在方法內部處理掉;另一種是使用throws關鍵字聲明方法可能拋出的異常類,將異常繼續跑出去,
異常的傳遞:規則是:從某個方法中的某一個throw語句開始,異常將從這個方法(傳遞到調用這個方法的地方,並且按照調用的順序去繼續傳遞,直到main()方法。
異常必須被傳遞出去,否則視爲錯誤。
如果在運行程序時方法的某行代碼拋出了異常,那麼方法中此行之後的所有代碼都不會執行。
3:異常的處理
1.繼續使用throws將異常向外跑出。
2.使用try{}catch(){}處理該異常。
當try語句塊中發生異常後就會根據異常實例的類型去try語句配套的catch語句中尋找能夠匹配這個異常實例的catch語句,如果一個catch語句的異常類型是Exception類型,那麼它將用來處理try語句中所有的Exception類型的實例或者exception的子類,如果找到了一個catch語句,那麼就會先執行catch語句中的內容來指向異常隊向。
多個異常:
try{
}catch(){
}catch(){
}
一個try語句可以匹配多個catch語句,分別用來處理不同類型的異常,匹配的順序就是按照catch語句來實現的。

 

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