【Android開(kāi)發(fā)】Java 異常 Exception

前言: Java 中 Exception 繼承自Throwable。在程序的編譯矫膨、運(yùn)行過(guò)程中,JVM檢測(cè)期奔、捕獲這些異常侧馅,保證程序運(yùn)行的健壯性。

Exception 分類

Exception 總共有兩大類:

  1. Unchecked Exception(Runtime Exception)
  • Checked Exception(非Runtime Exception)

提醒:所有的RuntimeException都是Unchecked Exception呐萌,其余的全是CheckedException.
區(qū)別:Unchecked 與Checked 區(qū)別在于馁痴,對(duì)于CheckedException,我們必須對(duì)其檢查處理肺孤,也就是必須添加try…catch…捕獲異常罗晕、或者throw 拋出異常。而對(duì)于UncheckedException赠堵,可以選擇處理小渊,也可以不處理。推薦不處理這些異常顾腊。

常見(jiàn)異常.png

異常處理

  • try 塊:用于捕獲異常粤铭。其后可接零個(gè)或多個(gè)catch塊,若沒(méi)有catch塊杂靶,則必須跟一個(gè)finally塊梆惯。
  • catch 塊:用于處理try捕獲到的異常。
  • finally 塊:無(wú)論是否捕獲或處理異常吗垮,finally塊里的語(yǔ)句都會(huì)被執(zhí)行垛吗。當(dāng)在try塊或catch塊中遇到return語(yǔ)句時(shí),finally語(yǔ)句塊將在方法返回之前被執(zhí)行烁登。其實(shí) finally 語(yǔ)句塊是在 try 或者 catch 中的 return 語(yǔ)句之前執(zhí)行的怯屉。更加一般的說(shuō)法是,finally 語(yǔ)句塊應(yīng)該是在控制轉(zhuǎn)移語(yǔ)句之前執(zhí)行饵沧,控制轉(zhuǎn)移語(yǔ)句除了 return 外锨络,還有 break 和 continue。

在以下特殊情況下狼牺,finally塊不會(huì)被執(zhí)行:
1)在finally語(yǔ)句塊中 發(fā)生了異常羡儿。
2)try或者catch中System.exit(0)退出程序。
3)程序所在的線程死亡是钥。
4)計(jì)算機(jī)斷電掠归、失火缅叠、或遭遇病毒攻擊

異常處理.png
  • 代碼示例:
//該代碼直接借用的@Dandan Meng 的,他寫(xiě)的很棒虏冻,我就沒(méi)有再去創(chuàng)建
public class ExceptionTest
{
    public static void main(String[] args)
    {
        int c = 0;
        try
        {
            int a = 3;
            int b = 0;

            // 這塊代碼出現(xiàn)了異常 肤粱,除數(shù)不能為0 
            c = a / b;
            // 那么異常之后的代碼都不會(huì)被執(zhí)行
            System.out.println("Hello World");
        }
        catch (ArithmeticException e)
        {
            e.printStackTrace();
        }
        finally
        {
            //不管有沒(méi)有發(fā)生異常,finally語(yǔ)句塊都會(huì)被執(zhí)行
            System.out.println("Welcome");
        }

        System.out.println(c);
        // 當(dāng)b為0時(shí)厨相,有異常领曼,輸出為c的初始值0
    }
}

小結(jié)

關(guān)于異常,知識(shí)點(diǎn)不是很多领铐,網(wǎng)絡(luò)上資料很全面悯森,我寫(xiě)的這些大部分摘抄自網(wǎng)絡(luò),下面附上比較不錯(cuò)的參考博客
參考鏈接:
http://www.cnblogs.com/mengdd/archive/2013/02/03/2890923.html

https://docs.oracle.com/javase/8/docs/api/overview-tree.html
https://www.ibm.com/developerworks/cn/java/j-lo-finally/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末绪撵,一起剝皮案震驚了整個(gè)濱河市瓢姻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌音诈,老刑警劉巖幻碱,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異细溅,居然都是意外死亡褥傍,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門(mén)喇聊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)恍风,“玉大人,你說(shuō)我怎么就攤上這事誓篱∨蟊幔” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵窜骄,是天一觀的道長(zhǎng)锦募。 經(jīng)常有香客問(wèn)我,道長(zhǎng)邻遏,這世上最難降的妖魔是什么糠亩? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮准验,結(jié)果婚禮上赎线,老公的妹妹穿的比我還像新娘。我一直安慰自己糊饱,他們只是感情好垂寥,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般矫废。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上砰蠢,一...
    開(kāi)封第一講書(shū)人閱讀 51,763評(píng)論 1 307
  • 那天蓖扑,我揣著相機(jī)與錄音,去河邊找鬼台舱。 笑死律杠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的竞惋。 我是一名探鬼主播柜去,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼拆宛!你這毒婦竟也來(lái)了嗓奢?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤浑厚,失蹤者是張志新(化名)和其女友劉穎股耽,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體钳幅,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡物蝙,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了敢艰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诬乞。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖钠导,靈堂內(nèi)的尸體忽然破棺而出震嫉,到底是詐尸還是另有隱情,我是刑警寧澤辈双,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布责掏,位于F島的核電站,受9級(jí)特大地震影響湃望,放射性物質(zhì)發(fā)生泄漏换衬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一证芭、第九天 我趴在偏房一處隱蔽的房頂上張望瞳浦。 院中可真熱鬧,春花似錦废士、人聲如沸叫潦。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)矗蕊。三九已至短蜕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間傻咖,已是汗流浹背朋魔。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留卿操,地道東北人警检。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像害淤,于是被迫代替她去往敵國(guó)和親扇雕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

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

  • Java異常類型 所有異常類型都是Throwable的子類窥摄,Throwable把異常分成兩個(gè)不同分支的子類Erro...
    予別她閱讀 928評(píng)論 0 2
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法镶奉,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法崭放,繼承相關(guān)的語(yǔ)法腮鞍,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,644評(píng)論 18 399
  • 大家好莹菱,我是IT修真院鄭州分院第6期的學(xué)員李亞衡移国,一枚正直純潔善良的JAVA程序員 今天給大家分享一下,修真院官網(wǎng)...
    一筒君閱讀 362評(píng)論 0 0
  • 初識(shí)異常(Exception) 比如我們?cè)谌?shù)組里面的某個(gè)值得時(shí)候道伟,經(jīng)常會(huì)出現(xiàn)定義的取值范圍超過(guò)了數(shù)組的大小迹缀,那么...
    iDaniel閱讀 1,870評(píng)論 1 2
  • 迪士尼玩到最后一天,我們倆已經(jīng)精疲力盡蜜徽,然后依著同學(xué)的建議祝懂,我們準(zhǔn)備田子坊,攜程搜了一下田子坊最近的酒店之...
    A墨菲閱讀 739評(píng)論 0 2