最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

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 異常的評論 (共 條)

分享到微博請遵守國家法律
乌鲁木齐县| 邵武市| 剑川县| 岚皋县| 保定市| 泰来县| 甘孜县| 榕江县| 同心县| 安达市| 潼南县| 崇文区| 绩溪县| 乐陵市| 德江县| 白玉县| 新民市| 舞钢市| 绥德县| 聂拉木县| 盘山县| 章丘市| 什邡市| 石阡县| 三都| 汝阳县| 莫力| 德钦县| 慈溪市| 山丹县| 中宁县| 洛浦县| 工布江达县| 木兰县| 江油市| 灵石县| 顺昌县| 江永县| 正镶白旗| 浏阳市| 黄大仙区|