在千鋒學(xué)習(xí)Java已經(jīng)有一段時(shí)間了,不斷地接觸新的技術(shù)知識(shí),總結(jié)舊的技術(shù)知識(shí),今天給大家總結(jié)分享的是:異常。
程序中出現(xiàn)的不正常的情況我們稱之為“異常”。在運(yùn)行時(shí)出現(xiàn)了不正常的情況,程序?qū)⑺M(jìn)行了屬性和行為(異常的位置、原因、名字等)的抽象,提取,終究形成了對(duì)象,繼而形成各種異常類。
一、異常的分類
1.Error,錯(cuò)誤。對(duì)應(yīng)的是程序運(yùn)行過程中出現(xiàn)的嚴(yán)重的問題,這里我們不需要去修改。
2.Exception,為我們平時(shí)稱的異常。對(duì)應(yīng)的是運(yùn)行過程中出現(xiàn)的不嚴(yán)重的問題。我們可以嘗試去修改。而Exception分類我們又可以按照不同的標(biāo)準(zhǔn)進(jìn)行細(xì)分:
第一種分類:編譯異常,運(yùn)行時(shí)異常。
編譯異常在編譯階段拋出異常,處理異常。運(yùn)行時(shí)異常,在運(yùn)行階段拋出異常,處理異常。
第二種分類:系統(tǒng)異常,自定義異常。
系統(tǒng)異常指代系統(tǒng)提起定義好的,我們直接拿來使用。自定義異常是指需要我們自定的常見異常。
二、異常的特點(diǎn)
異常的特點(diǎn),指程序出現(xiàn)不正常的情況時(shí),程序會(huì)打印異常信息并除銹按后曾虛中斷,
所以當(dāng)同時(shí)出現(xiàn)多個(gè)異常的時(shí)候,只能執(zhí)行其中一個(gè)。
數(shù)組下標(biāo)異常---ArrayIndexOutOfBoundsException
空指針異常:NullPointerException
三、對(duì)異常的處理
檢查異常,捕獲異常,讓異常不影響下面代碼的執(zhí)行。簡(jiǎn)單舉例說明:
“try{”可能出現(xiàn)異常的代碼“}catch(Exception e){//“”捕獲異常,“e”就是要捕獲的異常。
對(duì)出現(xiàn)異常的代碼的處理“}”,只要“try”內(nèi)部的代碼發(fā)生了異常,“catch”會(huì)立刻捕獲異常,這里的代碼不會(huì)被執(zhí)行。只有“try”內(nèi)部的代碼沒有發(fā)生異常,這里才會(huì)執(zhí)行,但是“catch”不會(huì)再執(zhí)行。
當(dāng)遇到多異常處理時(shí),“try{”可能出現(xiàn)異常的代碼“}catch(異常一 e){//”捕獲異常, “e”就是要捕獲的異常。
對(duì)出現(xiàn)異常的代碼的處理“ }catch(異常二 e){”;對(duì)出現(xiàn)異常的代碼的處理“ }catch(Exception e){”;對(duì)出現(xiàn)異常的代碼的處理“ }”,“try{”,資源的獲取“ }finally{”,資源的釋放。
必須執(zhí)行的代碼指用于資源釋放,多線程中的鎖對(duì),流的釋放,數(shù)據(jù)庫的關(guān)閉等。如所遇異常為自定義異常,即自己定義的異常類,由于Exception里面有異常的基本功能,一般我們都是寫Exception的子類。
為什么要有自定義異常類?因?yàn)橄到y(tǒng)沒有定義好的異常需要自己定義。我們解決的是系統(tǒng)沒有解決的問題。例如訂單異常 ,除數(shù)為負(fù)數(shù)異常,用戶登錄異常,賬戶異常。
以上是關(guān)于異常知識(shí)點(diǎn)的整理,更多知識(shí)點(diǎn)分析,即將呈上。從平凡到卓越,為夢(mèng)想而拼搏。千鋒Java培訓(xùn)讓你的人生不見“異常”。