Java異常學(xué)習(xí)記錄
1.異常的體系結(jié)構(gòu)

異常:程序出現(xiàn)的問(wèn)題叫做異常。
Error錯(cuò)誤:表示系統(tǒng)級(jí)別的錯(cuò)誤,sun公司會(huì)把錯(cuò)誤封裝成對(duì)象,程序員一般不用。
Exception:叫做異常,表示程序出現(xiàn)的問(wèn)題。
異常分為兩類(lèi),一個(gè)是運(yùn)行時(shí)異常,一個(gè)是編譯時(shí)異常。
RuntimeException:運(yùn)行時(shí)異常,在代碼運(yùn)行時(shí)出現(xiàn)。
編譯時(shí)異常:編譯階段(Java文件編譯成字節(jié)碼階段)就會(huì)有提醒,繼承于Exception。
2.運(yùn)行時(shí)異常和編譯時(shí)異常的區(qū)別
編譯時(shí)異常:編譯階段需要進(jìn)行處理,作用是提醒程序員
運(yùn)行時(shí)異常:在編譯階段沒(méi)有報(bào)錯(cuò),是程序運(yùn)行時(shí)出現(xiàn)的
3.異常的作用
可以查詢(xún)出現(xiàn)問(wèn)題的信息,比如說(shuō)在某某行出現(xiàn)的問(wèn)題都可以看到
可以作為方法的特殊返回值,返回給調(diào)用者
4.處理異常的方式
1.jvm默認(rèn)處理方式(如果不對(duì)異常做任何處理,那異常就會(huì)讓jvm處理。)
把異常的名稱(chēng),原因,出現(xiàn)的位置打印在控制臺(tái)上
程序停止執(zhí)行
2.自己處理異常(捕獲異常)
格式:
????????????try{
????????????????可能出現(xiàn)異常的代碼
????????????}catch(異常類(lèi)(要捕獲的異常) 變量名){
????????????處理異常的代碼
}
目的:捕獲到的異常可以進(jìn)行處理而不是讓jvm處理,這樣可以使程序繼續(xù)運(yùn)行。
3.異常中的常見(jiàn)方法
getMessage()返回詳細(xì)消息字符串
toString()返回簡(jiǎn)單描述信息
printStackTrace()已紅色字體(底層使用System.err.println)打印錯(cuò)誤信息在控制臺(tái)
4.拋出異常
throws:寫(xiě)在方法旁,表示聲明一個(gè)異常告訴調(diào)用者,使用該方法可能會(huì)有異常
一般寫(xiě)的是編譯時(shí)異常類(lèi)
throw:寫(xiě)在方法內(nèi),可以手動(dòng)拋出異常對(duì)象個(gè)調(diào)用者,并且它下面的代碼不會(huì)執(zhí)行,直接結(jié)束方法。
調(diào)用者可以通過(guò)try{}catch來(lái)捕獲方法拋出的異常