學(xué)習(xí)java異常理解編譯期異常
Java有Exception類
編譯期異常,進(jìn)行編譯(寫代碼)Java程序出現(xiàn)的問題。
看圖吧

為何IDE會報紅色波浪線
parse方法嘛,它自身就可能會有異常。(有可能轉(zhuǎn)換錯誤)
再看圖

看,在main方法簽名后面加上了throws ParseException
IDE中就不會有紅色波浪線了。
個人理解是因?yàn)閜arse方法內(nèi)部實(shí)現(xiàn)的時候,有要拋出異常的代碼。
所以,需要對這個方法,進(jìn)行異常處理。
在這個方法的簽名后面加上了throws ParseException,是異常處理的一種。
但是,parse參數(shù)中,輸入了格式錯誤的字符串,還是會有新情況的,那就是中斷處理。
看圖吧


在代碼中,參數(shù)的值變成了"1999-0909",運(yùn)行程序就出現(xiàn)中斷,出現(xiàn)Java.text.ParseException,和簽名中異常是一樣的。
異常處理的方式,除了在簽名中添加throws,另一種就是try/catch了
再理解這句話:(異常產(chǎn)生后程序員可以通過代碼的方式糾正,使程序繼續(xù)運(yùn)行,是必須要處理的。java處理異常的方式是中斷處理)
這Java中的Exception
在看異常,如果說Parse方法的API中有說,異常時parse方法的一部分,那么下面的異常是什么?
看圖吧


能從代碼看出來是,arr[3]索引超過了。
java.lang.ArrayIndexOutOfBoundsException
這也是異常,只不過是程序員編碼的bug。導(dǎo)致jvm的中斷處理了。
當(dāng)然,使用兩種處理方式是可以處理異常的。
再看異常,直接上圖


這次異常是java.lang.OutofMemoryError
看代碼還是程序員編碼的bug,只不過是很初級的錯誤。
從parse的內(nèi)部實(shí)現(xiàn)的異常,再者是數(shù)組索引超過,最后是開辟數(shù)組內(nèi)存空間過大
雖然這次是OutOfMemoryError是Error的命名,但也是可以使用兩種處理方式是可以處理異常的

浙公網(wǎng)安備 33010602011771號