最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java_異常類(錯(cuò)誤和異常,兩者的區(qū)別介紹)

 更新時(shí)間:2016年09月07日 10:19:57   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇Java_異常類(錯(cuò)誤和異常,兩者的區(qū)別介紹) 。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

在 Java 中,所有的異常都有一個(gè)共同的祖先 Throwable(可拋出)。Throwable 指定代碼中可用異常傳播機(jī)制通過(guò) Java 應(yīng)用程序傳輸?shù)娜魏螁?wèn)題的共性。

Throwable 有兩個(gè)重要的子類:Exception(異常)和 Error(錯(cuò)誤),二者都是 Java 異常處理的重要子類,各自都包含大量子類。

①.Exception(異常)是應(yīng)用程序中可能的可預(yù)測(cè)、可恢復(fù)問(wèn)題。一般大多數(shù)異常表示中度到輕度的問(wèn)題。異常一般是在特定環(huán)境下產(chǎn)生的,通常出現(xiàn)在代碼的特定方法和操作中。在 EchoInput 類中,當(dāng)試圖調(diào)用 readLine 方法時(shí),可能出現(xiàn) IOException 異常。

Exception 類有一個(gè)重要的子類 RuntimeException。RuntimeException 類及其子類表示“JVM 常用操作”引發(fā)的錯(cuò)誤。例如,若試圖使用空值對(duì)象引用、除數(shù)為零或數(shù)組越界,則分別引發(fā)運(yùn)行時(shí)異常(NullPointerException、ArithmeticException)和 ArrayIndexOutOfBoundException。

②.Error(錯(cuò)誤)表示運(yùn)行應(yīng)用程序中較嚴(yán)重問(wèn)題。大多數(shù)錯(cuò)誤與代碼編寫(xiě)者執(zhí)行的操作無(wú)關(guān),而表示代碼運(yùn)行時(shí) JVM(Java 虛擬機(jī))出現(xiàn)的問(wèn)題。例如,當(dāng) JVM 不再有繼續(xù)執(zhí)行操作所需的內(nèi)存資源時(shí),將出現(xiàn) OutOfMemoryError。

檢查異常 和 未檢查異常 的劃分

Java中的異常分為兩大類:

1.Checked Exception(非Runtime Exception)

2.Unchecked Exception(Runtime Exception)

運(yùn)行時(shí)異常

RuntimeException類是Exception類的子類,它叫做運(yùn)行時(shí)異常,Java中的所有運(yùn)行時(shí)異常都會(huì)直接或者間接地繼承自RuntimeException類。

Java中凡是繼承自Exception,而不繼承自RuntimeException類的異常都是非運(yùn)行時(shí)異常。

一個(gè)try后面可以跟多個(gè)catch,但不管多少個(gè),最多只會(huì)有一個(gè)catch塊被執(zhí)行。

對(duì)于非運(yùn)行時(shí)異常(checked exception),必須要對(duì)其進(jìn)行處理,否則無(wú)法通過(guò)編譯。

處理方式有兩種:

1.使用try..catch..finally進(jìn)行捕獲;

2.在產(chǎn)生異常的方法聲明后面寫(xiě)上throws 某一個(gè)Exception類型,如throws Exception,將異常拋出到外面一層去。

對(duì)于運(yùn)行時(shí)異常(runtime exception),可以對(duì)其進(jìn)行處理,也可以不處理。推薦不對(duì)運(yùn)行時(shí)異常進(jìn)行處理。

擴(kuò)展:錯(cuò)誤和異常的區(qū)別(Error vs Exception)

1).java.lang.Error: Throwable的子類,用于標(biāo)記嚴(yán)重錯(cuò)誤。合理的應(yīng)用程序不應(yīng)該去try/catch這種錯(cuò)誤。絕大多數(shù)的錯(cuò)誤都是非正常的,就根本不該出現(xiàn)的。

java.lang.Exception: Throwable的子類,用于指示一種合理的程序想去catch的條件。即它僅僅是一種程序運(yùn)行條件,而非嚴(yán)重錯(cuò)誤,并且鼓勵(lì)用戶程序去catch它。

2).Error和RuntimeException 及其子類都是未檢查的異常(unchecked exceptions),而所有其他的Exception類都是檢查了的異常(checked exceptions).

checked exceptions: 通常是從一個(gè)可以恢復(fù)的程序中拋出來(lái)的,并且最好能夠從這種異常中使用程序恢復(fù)。比如FileNotFoundException, ParseException等。檢查了的異常發(fā)生在編譯階段,必須要使用try…catch(或者throws)否則編譯不通過(guò)。

unchecked exceptions: 通常是如果一切正常的話本不該發(fā)生的異常,但是的確發(fā)生了。發(fā)生在運(yùn)行期,具有不確定性,主要是由于程序的邏輯問(wèn)題所引起的。比如ArrayIndexOutOfBoundException, ClassCastException等。從語(yǔ)言本身的角度講,程序不該去catch這類異常,雖然能夠從諸如RuntimeException這樣的異常中catch并恢復(fù),但是并不鼓勵(lì)終端程序員這么做,因?yàn)橥耆珱](méi)要必要。因?yàn)檫@類錯(cuò)誤本身就是bug,應(yīng)該被修復(fù),出現(xiàn)此類錯(cuò)誤時(shí)程序就應(yīng)該立即停止執(zhí)行。 因此,面對(duì)Errors和unchecked exceptions應(yīng)該讓程序自動(dòng)終止執(zhí)行,程序員不該做諸如try/catch這樣的事情,而是應(yīng)該查明原因,修改代碼邏輯。

RuntimeException:RuntimeException體系包括錯(cuò)誤的類型轉(zhuǎn)換、數(shù)組越界訪問(wèn)和試圖訪問(wèn)空指針等等。

處理RuntimeException的原則是:如果出現(xiàn) RuntimeException,那么一定是程序員的錯(cuò)誤。例如,可以通過(guò)檢查數(shù)組下標(biāo)和數(shù)組邊界來(lái)避免數(shù)組越界訪問(wèn)異常。其他(IOException等等)checked異常一般是外部錯(cuò)誤,例如試圖從文件尾后讀取數(shù)據(jù)等,這并不是程序本身的錯(cuò)誤,而是在應(yīng)用環(huán)境中出現(xiàn)的外部錯(cuò)誤。

以上這篇Java_異常類(錯(cuò)誤和異常,兩者的區(qū)別介紹) 就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 微信小程序登錄狀態(tài)java后臺(tái)解密

    微信小程序登錄狀態(tài)java后臺(tái)解密

    這篇文章主要為大家詳細(xì)介紹了微信小程序登錄狀態(tài)java后臺(tái)解密,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • htmlcleaner使用方法及xpath語(yǔ)法初探

    htmlcleaner使用方法及xpath語(yǔ)法初探

    HtmlCleaner是一個(gè)開(kāi)源的Java語(yǔ)言的Html文檔解析器。HtmlCleaner能夠重新整理HTML文檔的每個(gè)元素并生成結(jié)構(gòu)良好(Well-Formed)的 HTML 文檔
    2015-08-08
  • 一文詳解Java?Condition的await和signal等待通知機(jī)制

    一文詳解Java?Condition的await和signal等待通知機(jī)制

    這篇文章主要為大家詳細(xì)介紹了Java?Condition的await和signal等待通知機(jī)制的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2025-02-02
  • SpringBoot項(xiàng)目嵌入RocketMQ的實(shí)現(xiàn)示例

    SpringBoot項(xiàng)目嵌入RocketMQ的實(shí)現(xiàn)示例

    本文主要介紹了SpringBoot項(xiàng)目嵌入RocketMQ的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • java子線程解決獲取主線程的request對(duì)象問(wèn)題

    java子線程解決獲取主線程的request對(duì)象問(wèn)題

    這篇文章主要介紹了java子線程解決獲取主線程的request對(duì)象問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 利用idea搭建SSM項(xiàng)目看這一篇就夠了

    利用idea搭建SSM項(xiàng)目看這一篇就夠了

    SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis兩個(gè)開(kāi)源框架整合而成(SpringMVC是Spring中的部分內(nèi)容),常作為數(shù)據(jù)源較簡(jiǎn)單的web項(xiàng)目的框架,下面這篇文章主要給大家介紹了關(guān)于利用idea搭建SSM項(xiàng)目的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • springboot項(xiàng)目部署到k8s上的方法步驟

    springboot項(xiàng)目部署到k8s上的方法步驟

    本文主要介紹了springboot項(xiàng)目部署到k8s上的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • java生成XML的方法【附demo源碼下載】

    java生成XML的方法【附demo源碼下載】

    這篇文章主要介紹了java生成XML的方法,涉及java針對(duì)xml格式文件的簡(jiǎn)單操作技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下
    2016-12-12
  • 如何使用jakarta.json進(jìn)行json序列化和反序列化

    如何使用jakarta.json進(jìn)行json序列化和反序列化

    java里,json框架何其多,常見(jiàn)的有jackson、fastjson、gson等,本文重點(diǎn)介紹如何使用jakarta.json進(jìn)行json序列化和反序列化,需要的朋友可以參考下,
    2024-07-07
  • python實(shí)現(xiàn)高斯模糊及原理詳解

    python實(shí)現(xiàn)高斯模糊及原理詳解

    高斯模糊是一種常見(jiàn)的模糊技術(shù),本文主要介紹了python實(shí)現(xiàn)高斯模糊及原理詳解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05

最新評(píng)論

郑州市| 汉沽区| 太仓市| 和田县| 大安市| 河池市| 漠河县| 西林县| 翼城县| 枝江市| 江川县| 辽宁省| 邛崃市| 富平县| 西丰县| 涞源县| 元氏县| 伊金霍洛旗| 瑞丽市| 耒阳市| 宣城市| 鱼台县| 肇庆市| 博白县| 丹阳市| 乌拉特后旗| 青田县| 历史| 潮安县| 万州区| 长沙市| 乌兰察布市| 浦江县| 拜城县| 银川市| 安宁市| 池州市| 湖南省| 木里| 台安县| 阿克|