5、異常處理

image.png

java Exception:
1亿眠、Error
2碎罚、Runtime Exception 運(yùn)行時(shí)異常
3、Exception
4纳像、throw 用戶自定義拋出的異常
異常分為兩大類型:
● Error類:代表了編譯和系統(tǒng)的錯(cuò)誤荆烈,不允許捕獲,比如虛擬機(jī)錯(cuò)誤竟趾,內(nèi)存空間不足憔购,方法調(diào)用棧溢出等,如java.lang.StackOverFlowError和Java.lang.OutOfMemoryError等岔帽,對(duì)于這類錯(cuò)誤玫鸟,java編譯器不去檢查,僅靠程序本身也無法恢復(fù)和預(yù)防犀勒,建議終止程序

● Exception類:表示程序可以處理的異常屎飘,可以捕獲且有可能恢復(fù),對(duì)于這類異常账蓉,應(yīng)盡可能處理異常枚碗,是程序恢復(fù)運(yùn)行逾一。此類又可分為運(yùn)行時(shí)異常Runtime_Exception和非運(yùn)行時(shí)異常Non_RuntimeException兩個(gè)直接子類铸本。

+ 運(yùn)行時(shí)異常:對(duì)應(yīng)于編譯錯(cuò)誤,是指java程序在運(yùn)行時(shí)產(chǎn)生的由解釋器引發(fā)的各種異常遵堵。比較常見的此類異常:除數(shù)為0時(shí)的算術(shù)異常ArithmeticException箱玷、錯(cuò)誤的類型轉(zhuǎn)換、數(shù)組下標(biāo)越界ArrayIndexOutOfBoundsException陌宿、空指針異常NullPointerException
+非運(yùn)行時(shí)異常:又稱可檢測(cè)異常锡足,此類異常可使用throws和try-catch-finally來處理壳坪。比較常見:SQLException舶得、IOException等

二、異常處理流程

1爽蝴、 如果程序之中產(chǎn)生了異常沐批,那么會(huì)自動(dòng)的由JVM根據(jù)異常的類型纫骑,實(shí)例化一個(gè)指定異常類的對(duì)象;
2九孩、 如果這個(gè)時(shí)候程序之中沒有任何的異常處理操作先馆,則這個(gè)異常類的實(shí)例化對(duì)象將交給JVM進(jìn)行處理,而JVM的默認(rèn)處理方式就是進(jìn)行異常信息的輸出躺彬,而后中斷程序執(zhí)行煤墙;
3、 如果程序之中存在了異常處理宪拥,則會(huì)由try語(yǔ)句捕獲產(chǎn)生的異常類對(duì)象仿野;
4、 與try之后的每一個(gè)catch進(jìn)行匹配她君,如果匹配成功设预,則使用指定的catch進(jìn)行處理,如果沒有匹配成功犁河,則向后面的catch繼續(xù)匹配鳖枕,如果沒有任何的catch匹配成功,則這個(gè)時(shí)候?qū)⒔唤oJVM執(zhí)行默認(rèn)處理桨螺;
5宾符、 不管是否有異常都會(huì)執(zhí)行finally程序,如果此時(shí)沒有異常灭翔,執(zhí)行完finally魏烫,則會(huì)繼續(xù)執(zhí)行程序之中的其他代碼,如果此時(shí)有異常沒有能夠處理(沒有一個(gè)catch可以滿足)肝箱,那么也會(huì)執(zhí)行finally哄褒,但是執(zhí)行完finally之后,將默認(rèn)交給JVM進(jìn)行異常的信息輸出煌张,并且程序中斷呐赡;

三、一些需要注意的地方

●在catch塊中骏融,由上至下的異常范圍越來越大
try語(yǔ)句在返回前链嘀,將其他所有的操作執(zhí)行完,保留好要返回的值档玻,而后轉(zhuǎn)入執(zhí)行finally中的語(yǔ)句怀泊,而后分為以下三種情況:
情況一:如果finally中有return語(yǔ)句,則會(huì)將try中的return語(yǔ)句<font color=blue>”覆蓋“</font>掉误趴,直接執(zhí)行finally中的return語(yǔ)句霹琼,得到返回值,這樣便無法得到try之前保留好的返回值。
情況二:如果finally中沒有return語(yǔ)句枣申,也沒有改變要返回值树灶,則執(zhí)行完finally中的語(yǔ)句后,會(huì)接著執(zhí)行try中的return語(yǔ)句糯而,返回之前保留的值天通。
情況三:如果finally中沒有return語(yǔ)句,但是改變了要返回的值熄驼,這里有點(diǎn)類似與引用傳遞和值傳遞的區(qū)別像寒,分以下兩種情況,:
1)如果return的數(shù)據(jù)是基本數(shù)據(jù)類型或文本字符串瓜贾,則在finally中對(duì)該基本數(shù)據(jù)的改變不起作用诺祸,try中的return語(yǔ)句依然會(huì)返回進(jìn)入finally塊之前保留的值。
2)如果return的數(shù)據(jù)是引用數(shù)據(jù)類型祭芦,而在finally中對(duì)該引用數(shù)據(jù)類型的屬性值的改變起作用筷笨,try中的return語(yǔ)句返回的就是在finally中改變后的該屬性的值。

四龟劲、throw關(guān)鍵字

public class TestDemo { 
    public static void main(String args[]){ 
        try { 
            throw new Exception("拋著玩的胃夏,你管不著。") ; 
        } catch (Exception e) { 
            e.printStackTrace() ; 
        } 
    } 
} 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末昌跌,一起剝皮案震驚了整個(gè)濱河市仰禀,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蚕愤,老刑警劉巖答恶,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異萍诱,居然都是意外死亡悬嗓,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門裕坊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來包竹,“玉大人,你說我怎么就攤上這事碍庵∮称螅” “怎么了?”我有些...
    開封第一講書人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵静浴,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我挤渐,道長(zhǎng)苹享,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮得问,結(jié)果婚禮上囤攀,老公的妹妹穿的比我還像新娘。我一直安慰自己宫纬,他們只是感情好焚挠,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著漓骚,像睡著了一般蝌衔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蝌蹂,一...
    開封第一講書人閱讀 52,696評(píng)論 1 312
  • 那天噩斟,我揣著相機(jī)與錄音,去河邊找鬼孤个。 笑死剃允,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的齐鲤。 我是一名探鬼主播斥废,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼给郊!你這毒婦竟也來了营袜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤丑罪,失蹤者是張志新(化名)和其女友劉穎荚板,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吩屹,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡跪另,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了煤搜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片免绿。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖擦盾,靈堂內(nèi)的尸體忽然破棺而出嘲驾,到底是詐尸還是另有隱情,我是刑警寧澤迹卢,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布辽故,位于F島的核電站,受9級(jí)特大地震影響腐碱,放射性物質(zhì)發(fā)生泄漏誊垢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望喂走。 院中可真熱鬧殃饿,春花似錦、人聲如沸芋肠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)帖池。三九已至奈惑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間碘裕,已是汗流浹背携取。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留帮孔,地道東北人雷滋。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像文兢,于是被迫代替她去往敵國(guó)和親晤斩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法姆坚,類相關(guān)的語(yǔ)法澳泵,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法兼呵,異常的語(yǔ)法兔辅,線程的語(yǔ)...
    子非魚_t_閱讀 31,665評(píng)論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)击喂,斷路器维苔,智...
    卡卡羅2017閱讀 134,716評(píng)論 18 139
  • 本文部分來自于:代碼鋼琴家blog address:www.cnblogs.com/lulipro/p/75042...
    八目朱勇銘閱讀 1,319評(píng)論 0 4
  • 今日小雪,二十四節(jié)氣中第一個(gè)出現(xiàn)雪的節(jié)氣懂昂。前幾天給爸爸打電話的時(shí)候介时,才知道老家已經(jīng)下過了一場(chǎng)雪。記憶里凌彬,老家那個(gè)地...
    航空機(jī)務(wù)張小博閱讀 220評(píng)論 0 0
  • 一是樂教沸柔,二是懂教,三是善教
    聰聰168閱讀 167評(píng)論 0 0