2 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
你的代碼邏輯錯(cuò)了。NullPointerException是Exception的子類(lèi)。
捕獲異常的范圍應(yīng)該從小到大,你這樣捕獲的話,直接走第一個(gè)Exception。
所以是不會(huì)被NullPointerException捕獲到的。
try{
int[] a=new int[3];
a[2]=1;
} catch(NullPointerException e){
System.out.println("錯(cuò)誤類(lèi)型:空引用?。。。?quot;);
e.printStackTrace(); }
catch(Exception e){ e.printStackTrace(); }

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊
因?yàn)镹ullPointerException繼承了Exception,所以能被NullPointerException捕獲的異常肯定能被Exception捕獲。
所以即使有空指針異常,肯定也是被Exception捕獲,后面的catch語(yǔ)句就什么都捕獲不到了。
解決辦法:要么把catch(NullPointerException?npe){}寫(xiě)在前面,要么直接去掉
- 2 回答
- 0 關(guān)注
- 1841 瀏覽
添加回答
舉報(bào)