異常:
終于開(kāi)始找bug了,有沒(méi)有很興奮僵井?找bug是程序員最基本的技能。
它包括error驳棱,exception批什,它們有設(shè)么區(qū)別嗎?error是調(diào)用者來(lái)負(fù)責(zé)的社搅。而exception驻债,是在寫(xiě)代碼的時(shí)候就進(jìn)行預(yù)先的處理。
Java異常處理通過(guò)5個(gè)關(guān)鍵字try形葬、catch合呐、throw、throws笙以、finally進(jìn)行管理淌实。后面要詳細(xì)說(shuō)。
class Demo{
public static void main(String[] args){
int[] a=new int[]{1,2,5,4,7,8,5};
Jieshou(a,10);
}
public static void Jieshou(int[] b,int index){
System.out.println(b[index]);
}
}
這段簡(jiǎn)單的代碼是一個(gè)簡(jiǎn)單的方法調(diào)用
圖中可以看到編輯可以通過(guò)猖腕,運(yùn)行時(shí)報(bào)錯(cuò)拆祈,java虛擬機(jī)在發(fā)現(xiàn)函數(shù)調(diào)用這里有錯(cuò)誤,將錯(cuò)誤打包封裝倘感,丟給main方法放坏。
class Demo{
public static void main(String[] args){
int[] a=new int[]{1,2,4,5,6,15,7,8,25,5,4};
shibie(null,10);
}
public static int shibie(int[] b,int index){
if(b==null){
throw new NullPointerException("你傳遞的數(shù)組為空");
}
if(index<0&index>=b.length){
throw new ArrayIndexOutOfBoundsException(index+"你的數(shù)組角標(biāo)越界");
}
return b[index];
}
}
既然java虛擬機(jī)能夠給我們封裝打包,那么我們自己也可以進(jìn)行拋問(wèn)題這部操作老玛。