国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網 會員登陸 & 注冊

Java 異常

2023-02-28 20:31 作者:回到唐朝當少爺  | 我要投稿

異常

在java.lang.Throwable下分為Error和Exception,其中Error是給sun公司用的,是系統(tǒng)出現的問題,我們主要處理的是Exception

Exception:異常,代表程序可能出現的問題,我們通常會用Exception以及他的子類來封裝程序出現的問題.

Exception分為RuntimeException的其他異常

  • 運行時異常:RuntimeException以及其子類,編譯階段不會出現異常提醒,運行時出現的異常,如數組索引越界異常

  • 編譯時異常:編譯階段就會出現異常提醒的,如日期解析異常

異常體系的最上層的父類是Exception

編譯階段:Java不會運行代碼,只會檢查語法是否錯誤,或者做一些性能的優(yōu)化,提醒程序員檢查本地信息

異常的作用:

  1. 查看bug的關鍵參考信息

  2. 作為方法內部的一種特殊返回值,以便通知調用者底層的執(zhí)行情況

報錯,空指針異常,因為創(chuàng)建的引用類型數組未初始化,默認值為Null,需要創(chuàng)建學生對象放進去Student s1 = new Student(),如果用Null調用getName會引發(fā)空指針異常

異常的處理方式

JVM默認的處理方式

  • 把異常的名稱,原因及出現的位置等信息輸出在控制臺

  • 程序停止執(zhí)行,下面的代碼不會再執(zhí)行了

自己處理(捕獲異常)

格式:

目的:當代碼出現異常時,可以讓程序繼續(xù)往下執(zhí)行

  1. 問題1:如果try中沒有遇到問題怎么執(zhí)行?會把try里面所有的代碼全部執(zhí)行完畢,不會執(zhí)行catch里面的代碼,只有當出現了異常才會執(zhí)行catch里面的代碼

  2. 問題2:如果try中可能遇到多個問題,怎么執(zhí)行?

    要寫多個catch與之對應

    如果我們要捕獲多個異常,這些異常如果存在父子關系的話,父類一定要寫在下面如果兩種異常的處理方式一樣:可以在catch中的小括號里面用|同時捕獲多個異常(JDK7出現)

  3. 問題3:如果try中遇到的問題沒有被捕獲怎么執(zhí)行?相當于try...catch的代碼白寫了,最后還是會交給虛擬機處理,也就是以紅色字體打印到控制臺并終止執(zhí)行

  4. 問題3:如果try中遇到了問題,那么try下面的其他代碼還會執(zhí)行嗎?

    不會執(zhí)行了,而是會直接跳轉到對應的catch中執(zhí)行catch里面的語句體 但是如果沒有catch與之匹配,那么還是會交給虛擬機進行處理

異常中的常見方法

printStackTrace是最常用的

拋出處理

  • throws:寫在方法定義處,表示聲明一個異常,告訴調用者,使用本方法可能會有哪些異常

  • 編譯時異常:必須要寫 運行時異常:可以不寫

  • throw:寫在方法內,結束方法,手動拋出一場對象,交給調用者,方法中下面的代碼不再執(zhí)行了

小結

  1. 虛擬機默認處理異常的方式:把異常信息以紅色字體打印在控制臺,并結束程序

  2. 捕獲try...catch:一般在調用處,能讓代碼繼續(xù)往下執(zhí)行

  3. 拋出throw throws:在方法中出現異常了,方法就沒有繼續(xù)運行下去的意義了,采用拋出處理,讓該方法結束運行并告訴調用者出現了問題

拋出:告訴調用者出錯了

捕獲:不讓程序停止

自定義異常

  1. 定義異常類

  2. 寫繼承關系

  3. 空參構造

  4. 帶參構造

意義:就是為了讓控制臺的報錯信息更加見名知意


Java 異常的評論 (共 條)

分享到微博請遵守國家法律
舒兰市| 河源市| 开平市| 龙游县| 江陵县| 苍梧县| 清远市| 县级市| 东阳市| 文化| 正定县| 阜城县| 武乡县| 成安县| 邵东县| 扶沟县| 余姚市| 霸州市| 油尖旺区| 平遥县| 芷江| 万盛区| 玉山县| 商都县| 新和县| 平乐县| 东乡族自治县| 广汉市| 盱眙县| 若羌县| 嘉禾县| 津南区| 北流市| 尉犁县| 沧源| 珠海市| 禄劝| 泽州县| 怀柔区| 民权县| 泽普县|