Java異常體系總結(jié)

Java異常體系圖
Error(錯誤):

是程序無法處理的錯誤科盛,表示運行應用程序中較嚴重問題赊豌。例如等恐,Java虛擬機運行錯誤(Virtual MachineError)

Exception(異常):

是程序本身可以處理的異常吝秕。

異常和錯誤的區(qū)別:異常能被程序本身可以處理,錯誤是無法處理空幻。

Exception分為:可查的異常(checked exceptions)和不可查的異常(unchecked exceptions)
RuntimeException為不可查異常烁峭,其余異常都屬于可查異常(編譯異常)。

編譯性異常(checked exceptions)必須拋出異常秕铛,否則無法編譯通過约郁。

一個 try 塊可能有多個 catch 塊。Java虛擬機會把實際拋出的異常對象依次和各個catch代碼塊聲明的異常類型匹配但两,如果異常對象為某個異常類型或其子類的實例鬓梅,就執(zhí)行這個catch代碼塊,不會再執(zhí)行其他的 catch代碼塊

當try捕獲到異常谨湘,catch語句塊里有處理此異常的情況:在try語句塊中是按照順序來執(zhí)行的绽快,當執(zhí)行到某一條語句出現(xiàn)異常時芥丧,程序?qū)⑻絚atch語句塊,并與catch語句塊逐一匹配坊罢,找到與之對應的處理程序续担,其他的catch語句塊將不會被執(zhí)行,而try語句塊中活孩,出現(xiàn)異常之后的語句也不會被執(zhí)行物遇,catch語句塊執(zhí)行完后,執(zhí)行finally語句塊里的語句憾儒,最后執(zhí)行finally語句塊后的語句询兴;

throws和throw的使用區(qū)別:

throws用在方法聲明中,throw用在方法體中起趾,
如 throw new MyException("除數(shù)不能是負數(shù)"); 程序會在throw語句后立即終止诗舰。

自定義異常:
public class MyException extends Exception { 

  private static final long serialVersionUID = 1L; 

  // 提供無參數(shù)的構(gòu)造方法
  public MyException() { 
  } 

  // 提供一個有參數(shù)的構(gòu)造方法,可自動生成
  public MyException(String message) { 
    super(message);// 把參數(shù)傳遞給Throwable的帶String參數(shù)的構(gòu)造方法 
  } 

} 

在異常判斷條件成立的地方調(diào)用throw new MyException()拋出這個自定義異常阳掐。

Java異常try里面有return始衅,finally代碼會執(zhí)行嗎?

會執(zhí)行缭保。finally{}塊的代碼只有在try{}塊中包含遇到System.exit(0);之類的導致Java虛擬機直接退出的語句才會不執(zhí)行汛闸。
當程序執(zhí)行try{}遇到return時,程序會先執(zhí)行return語句艺骂,但并不會立即返回诸老,也就是在將要返回、但并未返回的時候钳恕,程序把執(zhí)行流程轉(zhuǎn)去執(zhí)行finally塊别伏,當finally塊執(zhí)行完成后就直接返回剛才return語句已經(jīng)準備好的結(jié)果。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末忧额,一起剝皮案震驚了整個濱河市厘肮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌睦番,老刑警劉巖类茂,帶你破解...
    沈念sama閱讀 212,294評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異托嚣,居然都是意外死亡巩检,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,493評論 3 385
  • 文/潘曉璐 我一進店門示启,熙熙樓的掌柜王于貴愁眉苦臉地迎上來兢哭,“玉大人,你說我怎么就攤上這事夫嗓〕俾荩” “怎么了冲秽?”我有些...
    開封第一講書人閱讀 157,790評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長煮仇。 經(jīng)常有香客問我劳跃,道長,這世上最難降的妖魔是什么浙垫? 我笑而不...
    開封第一講書人閱讀 56,595評論 1 284
  • 正文 為了忘掉前任刨仑,我火速辦了婚禮,結(jié)果婚禮上夹姥,老公的妹妹穿的比我還像新娘杉武。我一直安慰自己,他們只是感情好辙售,可當我...
    茶點故事閱讀 65,718評論 6 386
  • 文/花漫 我一把揭開白布轻抱。 她就那樣靜靜地躺著,像睡著了一般旦部。 火紅的嫁衣襯著肌膚如雪祈搜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,906評論 1 290
  • 那天士八,我揣著相機與錄音容燕,去河邊找鬼。 笑死婚度,一個胖子當著我的面吹牛蘸秘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蝗茁,決...
    沈念sama閱讀 39,053評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼醋虏,長吁一口氣:“原來是場噩夢啊……” “哼防症!你這毒婦竟也來了娇豫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,797評論 0 268
  • 序言:老撾萬榮一對情侶失蹤灾而,失蹤者是張志新(化名)和其女友劉穎饭寺,沒想到半個月后阻课,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,250評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡佩研,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,570評論 2 327
  • 正文 我和宋清朗相戀三年柑肴,在試婚紗的時候發(fā)現(xiàn)自己被綠了霞揉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片旬薯。...
    茶點故事閱讀 38,711評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖适秩,靈堂內(nèi)的尸體忽然破棺而出绊序,到底是詐尸還是另有隱情硕舆,我是刑警寧澤,帶...
    沈念sama閱讀 34,388評論 4 332
  • 正文 年R本政府宣布骤公,位于F島的核電站抚官,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏阶捆。R本人自食惡果不足惜凌节,卻給世界環(huán)境...
    茶點故事閱讀 40,018評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望洒试。 院中可真熱鬧倍奢,春花似錦、人聲如沸垒棋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,796評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叼架。三九已至畔裕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間乖订,已是汗流浹背扮饶。 一陣腳步聲響...
    開封第一講書人閱讀 32,023評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留垢粮,地道東北人贴届。 一個月前我還...
    沈念sama閱讀 46,461評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像蜡吧,于是被迫代替她去往敵國和親毫蚓。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,595評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 八昔善、深入理解java異常處理機制 引子try…catch…finally恐怕是大家再熟悉不過的語句了元潘, 你的答案是...
    壹點零閱讀 1,537評論 0 0
  • 初識異常(Exception) 比如我們在取數(shù)組里面的某個值得時候,經(jīng)常會出現(xiàn)定義的取值范圍超過了數(shù)組的大小君仆,那么...
    iDaniel閱讀 1,867評論 1 2
  • 2.JAVA異常 異常指不期而至的各種狀況翩概,如:文件找不到、網(wǎng)絡連接失敗返咱、非法參數(shù)等钥庇。異常是一個事件,它發(fā)生在程...
    青城樓主閱讀 551評論 0 0
  • 引言 在程序運行過程中(注意是運行階段咖摹,程序可以通過編譯)评姨,如果JVM檢測出一個不可能執(zhí)行的操作,就會出現(xiàn)運行時錯...
    Steven1997閱讀 2,414評論 1 6
  • 概念介紹 異常是發(fā)生在程序執(zhí)行過程中阻礙程序正常執(zhí)行的錯誤事件萤晴,當一個程序出現(xiàn)錯誤時吐句,可能的情況有如下3種: 語法...
    niaoge2016閱讀 5,170評論 2 20