亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java錯誤: 已捕獲到異常錯誤NullPointerException

java錯誤: 已捕獲到異常錯誤NullPointerException

森林海 2018-07-13 08:54:09
其次,如果將try里面的語句改為int[] a=null;,為什么還是沒有正常輸出“錯誤類型:空引用?。。?!”語句????public class Sample6_7{public static void main(String []args){try{int[] a=new int[3];a[2]=1;}catch(Exception e){e.printStackTrace();}catch(NullPointerException npe){System.out.println("錯誤類型:空引用?。。。?quot;);}}}
查看完整描述

2 回答

?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

你的代碼邏輯錯了。NullPointerException是Exception的子類。

捕獲異常的范圍應該從小到大,你這樣捕獲的話,直接走第一個Exception。

所以是不會被NullPointerException捕獲到的。

try{     

    int[] a=new int[3];     

    a[2]=1; 

} catch(NullPointerException e){     

    System.out.println("錯誤類型:空引用?。。?!");    

     e.printStackTrace(); }

catch(Exception e){     e.printStackTrace(); }

查看完整回答
反對 回復 2018-07-19
?
蝴蝶刀刀

TA貢獻1801條經驗 獲得超8個贊

因為NullPointerException繼承了Exception,所以能被NullPointerException捕獲的異常肯定能被Exception捕獲。
所以即使有空指針異常,肯定也是被Exception捕獲,后面的catch語句就什么都捕獲不到了。
解決辦法:要么把catch(NullPointerException?npe){}寫在前面,要么直接去掉

查看完整回答
反對 回復 2018-07-19
  • 2 回答
  • 0 關注
  • 1844 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號