Day11 接口與異常處理

接口interface:與類并行的一個(gè)概念

  • 接口可以看做是一個(gè)特殊的抽象類掘殴。是常量與抽象方法的一個(gè)集合,不能包含變量、一般的方法千所。
  • 接口是沒有構(gòu)造器的。
  • 接口定義的就是一種功能蒜埋。此功能可以被類所實(shí)現(xiàn)(implements)淫痰。
    • class CC extends DD implements AA
  • 實(shí)現(xiàn)接口的類,必須要重寫其中的所有的抽象方法整份,方可實(shí)例化待错。若沒有重寫所有的抽象方法,則此類仍為一個(gè)抽象類
  • 類可以實(shí)現(xiàn)多個(gè)接口烈评。----java 中的類的繼承是單繼承的
  • 接口與接口之間也是繼承的關(guān)系火俄,而且可以實(shí)現(xiàn)多繼承
  • 接口與具體的實(shí)現(xiàn)類之間也存在多態(tài)性
    工廠模式 && 代理模式

異常處理

  • 體系結(jié)構(gòu)
    java.lang.Object
    |----java.lang.Throwable
    |-------java.lang.Error:錯(cuò)誤,java程序?qū)Υ藷o能為力础倍,不顯式的處理
    |-------java.lang.Exception:異常烛占。需要進(jìn)行處理
    |------RuntimeException:運(yùn)行時(shí)異常
    |ArrayIndexOutOfBoundsException/NullPointerException/ArithmeticException/ClassCastException
    |------非RuntimeException:編譯時(shí)異常
  • 因?yàn)閖ava程序分為javac.exe和java.exe兩個(gè)過程,在每個(gè)過程中沟启,都有可能出現(xiàn)異常忆家。故分為編譯時(shí)異常、運(yùn)行時(shí)異常
    • 對(duì)于運(yùn)行時(shí)異常比較常見德迹,可以不顯式的來處理芽卿。
    • 對(duì)于編譯時(shí)異常,必須要顯式的處理

如何處理異常

  • "拋":當(dāng)我們執(zhí)行代碼時(shí)胳搞,一旦出現(xiàn)異常卸例,就會(huì)在異常的代碼處生成一個(gè)對(duì)應(yīng)的異常類型的對(duì)象称杨,并將此對(duì)象拋出。(自動(dòng)拋出 / 手動(dòng)拋出)
    • 一旦拋出此異常類的對(duì)象筷转,那么程序就終止執(zhí)行
    • 此異常類的對(duì)象拋給方法的調(diào)用者姑原。
  • "抓":抓住上一步拋出來的異常類的對(duì)象。如何抓呜舒?即為異常處理的方式
  • java 提供了兩種方式用來處理一個(gè)異常類的對(duì)象锭汛。
處理的方式一:

try{* //可能出現(xiàn)異常的代碼* }
catch(Exception1 e1){* //處理的方式1* }
catch(Exception2 e2){* //處理的方式2* }
finally{* //一定要執(zhí)行的代碼* }

注:
1.try內(nèi)聲明的變量,類似于局部變量袭蝗,出了try{}語句唤殴,就不能被調(diào)用
2.finally是可選的
3.catch語句內(nèi)部是對(duì)異常對(duì)象的處理:* >getMessage(); printStackTrace();*
4.可以有多個(gè)catch語句,try中拋出的異常類對(duì)象從上往下去匹配catch中的異常類的類型到腥,一旦滿足,就執(zhí)行catch中的代碼朵逝。執(zhí)行完,就跳出其后的多條catch語句
5.如果異常處理了乡范,那么其后的代碼繼續(xù)執(zhí)行
6.若catch中多個(gè)異常類型是"并列"關(guān)系配名,孰上孰下都可以。
若catch中多個(gè)異常類型是"包含"關(guān)系晋辆,須將子類放在父類的上面段誊,進(jìn)行處理。否則報(bào)錯(cuò)栈拖!
7.finally中存放的是一定會(huì)被執(zhí)行的代碼,不管try中没陡、catch中是否仍有異常未被處理涩哟,以及是否有return語句
8.try-catch是可以嵌套的。

處理方式二:在方法的聲明處盼玄,顯式的使用throws + 異常類型

拋出異常不在本方法內(nèi)進(jìn)行處理贴彼,而是由調(diào)用它的方法處理

public void method1() throws Exception1 e1,Exception2 e2
{//可能出現(xiàn)異常(尤其是編譯時(shí)異常,一定要處理)}

public void method2() throws Exception1 e1,Exception2 e2
{method1();}
public void method3()
{try{method2();}
catch(Exception1 e1){System.out.println(e1.getMessage());}
catch(Exception2 e2){System.out.println(e2.getMessage());}}
public static void main(String[] args)
{對(duì)象1.method3();//不會(huì)再出現(xiàn)上述的Exception1和Exception2的異常埃儿!}

如何手動(dòng)的拋出一個(gè)異常器仗?
  • 在方法的內(nèi)部,可以使用 throw + 異常類對(duì)象童番,來手動(dòng)的拋出一個(gè)異常精钮!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市剃斧,隨后出現(xiàn)的幾起案子轨香,更是在濱河造成了極大的恐慌,老刑警劉巖幼东,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件臂容,死亡現(xiàn)場(chǎng)離奇詭異科雳,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)脓杉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門糟秘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人球散,你說我怎么就攤上這事尿赚。” “怎么了沛婴?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵吼畏,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我嘁灯,道長(zhǎng)泻蚊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任丑婿,我火速辦了婚禮性雄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘羹奉。我一直安慰自己秒旋,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布诀拭。 她就那樣靜靜地躺著迁筛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪耕挨。 梳的紋絲不亂的頭發(fā)上细卧,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音筒占,去河邊找鬼贪庙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛翰苫,可吹牛的內(nèi)容都是我干的止邮。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼奏窑,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼导披!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起埃唯,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤盛卡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后筑凫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體滑沧,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡并村,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了滓技。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哩牍。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖令漂,靈堂內(nèi)的尸體忽然破棺而出膝昆,到底是詐尸還是另有隱情,我是刑警寧澤叠必,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布荚孵,位于F島的核電站,受9級(jí)特大地震影響纬朝,放射性物質(zhì)發(fā)生泄漏收叶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一共苛、第九天 我趴在偏房一處隱蔽的房頂上張望判没。 院中可真熱鬧,春花似錦隅茎、人聲如沸澄峰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽俏竞。三九已至,卻和暖如春堂竟,著一層夾襖步出監(jiān)牢的瞬間胞此,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工跃捣, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人夺蛇。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓疚漆,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親刁赦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子娶聘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法甚脉,內(nèi)部類的語法丸升,繼承相關(guān)的語法,異常的語法牺氨,線程的語...
    子非魚_t_閱讀 31,639評(píng)論 18 399
  • 通俗編程——白話JAVA異常機(jī)制 - 代碼之道狡耻,編程之法 - 博客頻道 - CSDN.NEThttp://blog...
    葡萄喃喃囈語閱讀 3,180評(píng)論 0 25
  • 六種異常處理的陋習(xí) 你覺得自己是一個(gè)Java專家嗎墩剖?是否肯定自己已經(jīng)全面掌握了Java的異常處理機(jī)制?在下面這段代...
    Executing閱讀 1,329評(píng)論 0 6
  • 清晨起來夷狰,陽光明媚岭皂,約著老公,今天帶著寶寶回母校走走沼头。 五月的校園可以用清爽兩個(gè)字來形容爷绘,正對(duì)校門的大道兩旁兩排法...
    星空行走閱讀 479評(píng)論 0 0
  • contentMode屬性 帶有scale單詞的:圖片有可能會(huì)拉伸UIViewContentModeScaleTo...
    愛霉霉閱讀 765評(píng)論 0 1