Exception

Throwable-->Exception/Error

Exception除了runtimeException及其子類都是可檢測(cè)異常

  • 受檢測(cè)異常:如果編譯器檢測(cè)到可能拋出該類異常友扰,就必須在方法或者構(gòu)造方法中聲明進(jìn)行try...catch或throws,如果catch語(yǔ)句沒(méi)有捕獲,JVM還是會(huì)拋出異常莱坎。否則無(wú)法通過(guò)編譯治泥,常見(jiàn)的受監(jiān)測(cè)異常有IO操作先煎、ClassNotFoundException裸燎、線程操作

  • 不受檢測(cè)異常(運(yùn)行時(shí)異常):沒(méi)有上述限制蚁滋,不過(guò)想聲明捕獲也可以冯事,常見(jiàn)的有NullPointExecrption焦匈、NumberFormatException(字符串轉(zhuǎn)換為數(shù)字)、ArrayIndexOutOfBoundsException(數(shù)組越界)昵仅、ClassCastException(類型轉(zhuǎn)換錯(cuò)誤)缓熟、ArithmeticException(算術(shù)錯(cuò)誤)等。

Error: An Error is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch 編譯時(shí)或系統(tǒng)錯(cuò)誤摔笤,一般無(wú)法恢復(fù)或者不可捕獲荚虚,將導(dǎo)致應(yīng)用程序中斷, 通常應(yīng)用程序無(wú)法處理這些錯(cuò)誤。但可以聲明捕獲籍茧,如果不能被處理的話就顯得多余版述,因?yàn)樵擃惍惓J窃凇罢l件”下發(fā)生的,Java 程序通常不捕獲Error寞冯。

public void show() {
        try {
            System.out.println("pdd");
            pdd();
        }catch (StackOverflowError error){
            System.out.println("pdd dead");
        }finally {
            System.out.println("after death");
        }
        System.out.println("pdd still here");
    }

    public void pdd(){
        pdd();
    }
//pdd still here也會(huì)被打印,但上面說(shuō)了不建議catch Error

try{}catch{}finally{}中的操作
如果是程序主動(dòng)上拋異常而不捕獲渴析,那么上拋異常下面的代碼將不能執(zhí)行。

finally子句一定會(huì)執(zhí)行(即使exception或者Error沒(méi)有被捕獲)吮龄。如果在finally語(yǔ)句塊中拋出了一個(gè)異常俭茧,就會(huì)終止finally語(yǔ)句塊中下方語(yǔ)句執(zhí)行,同時(shí)將try/catch語(yǔ)句中拋出的異常覆蓋漓帚。

關(guān)于異常的繼承

java繼承鏈中母债,如果在拋出函數(shù)聲明中子類聲明拋出的異常只能是父類聲明的異常或其子異常尝抖,或者不聲明拋出異常毡们。父類函數(shù)中如果只拋出了檢查性異常,則子類中還可以聲明拋出非檢查性異常昧辽。但如果父類中只聲明拋出了非檢查性異常衙熔,子類中只能拋出非檢查性異常。

class A {
        public void fun() throws Exception {}
    }
    class B extends A {
        public void fun() throws IOException, RuntimeException {
        }
    }

子類在重寫父類拋出異常的方法時(shí)搅荞,如果實(shí)現(xiàn)了有相同方法簽名的接口且接口中的該方法也有異常聲明红氯,則子類重寫的方法要么不拋出異常框咙,要么拋出父類中被重寫方法聲明異常與接口中被實(shí)現(xiàn)方法聲明異常的交集。

class Test {
    public Test() throws IOException {}
    void test() throws IOException {}
}

interface I1{
    void test() throw Exception;
}

class SubTest extends Test implements I1 {
    public SubTest() throws Exception,NullPointerException, NoSuchMethodException {}
    void test() throws IOException {}
}

參考文章:
https://juejin.im/post/5b6d61e55188251b38129f9a#heading-0

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末痢甘,一起剝皮案震驚了整個(gè)濱河市喇嘱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌塞栅,老刑警劉巖婉称,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異构蹬,居然都是意外死亡王暗,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門庄敛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)俗壹,“玉大人,你說(shuō)我怎么就攤上這事藻烤”脸” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵怖亭,是天一觀的道長(zhǎng)涎显。 經(jīng)常有香客問(wèn)我,道長(zhǎng)兴猩,這世上最難降的妖魔是什么期吓? 我笑而不...
    開(kāi)封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮倾芝,結(jié)果婚禮上讨勤,老公的妹妹穿的比我還像新娘。我一直安慰自己晨另,他們只是感情好潭千,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著借尿,像睡著了一般刨晴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上路翻,一...
    開(kāi)封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天狈癞,我揣著相機(jī)與錄音,去河邊找鬼帚桩。 笑死亿驾,一個(gè)胖子當(dāng)著我的面吹牛嘹黔,可吹牛的內(nèi)容都是我干的账嚎。 我是一名探鬼主播莫瞬,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼郭蕉!你這毒婦竟也來(lái)了疼邀?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤召锈,失蹤者是張志新(化名)和其女友劉穎旁振,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體涨岁,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拐袜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了梢薪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蹬铺。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖秉撇,靈堂內(nèi)的尸體忽然破棺而出甜攀,到底是詐尸還是另有隱情,我是刑警寧澤琐馆,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布规阀,位于F島的核電站,受9級(jí)特大地震影響瘦麸,放射性物質(zhì)發(fā)生泄漏谁撼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一滋饲、第九天 我趴在偏房一處隱蔽的房頂上張望彤敛。 院中可真熱鬧,春花似錦了赌、人聲如沸墨榄。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)袄秩。三九已至,卻和暖如春逢并,著一層夾襖步出監(jiān)牢的瞬間之剧,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工砍聊, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留背稼,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓玻蝌,卻偏偏與公主長(zhǎng)得像蟹肘,于是被迫代替她去往敵國(guó)和親词疼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

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

  • Java異常 異常指不期而至的各種狀況帘腹,如:文件找不到贰盗、網(wǎng)絡(luò)連接失敗、非法參數(shù)等阳欲。異常是一個(gè)事件舵盈,它發(fā)生在程序運(yùn)行...
    java部落閱讀 3,115評(píng)論 1 13
  • 異常處理 異常處理機(jī)制是Java語(yǔ)言中一個(gè)獨(dú)特之處,它為開(kāi)發(fā)穩(wěn)定的軟件系統(tǒng)提供了有力的支持球化。它主要使用捕獲異常和聲...
    努力生活的西魚閱讀 719評(píng)論 0 0
  • 八秽晚、深入理解java異常處理機(jī)制 引子try…catch…finally恐怕是大家再熟悉不過(guò)的語(yǔ)句了, 你的答案是...
    壹點(diǎn)零閱讀 1,559評(píng)論 0 0
  • 1.Java異常是什么筒愚? 異常是一種錯(cuò)誤爆惧,甚至可以在程序運(yùn)行中發(fā)生,打斷正常的執(zhí)行流程锨能。異常會(huì)導(dǎo)致不同的情況發(fā)生扯再,...
    mitsuii閱讀 509評(píng)論 0 0
  • 1、例外的概念 所謂錯(cuò)誤址遇,是在程序運(yùn)行過(guò)程中發(fā)生的異常事件熄阻,比如除0溢出、數(shù)組越界倔约、文件找不到等秃殉,這些事件的發(fā)生將...
    WCT的小仙女閱讀 1,784評(píng)論 0 1