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

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

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

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

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

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

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

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

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

Java中的異常分為兩大類:

1.Checked Exception(非Runtime Exception)

2.Unchecked Exception(Runtime Exception)

運行時異常

RuntimeException類是Exception類的子類,它叫做運行時異常,Java中的所有運行時異常都會直接或者間接地繼承自RuntimeException類。

Java中凡是繼承自Exception,而不繼承自RuntimeException類的異常都是非運行時異常。

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

對于非運行時異常(checked exception),必須要對其進行處理,否則無法通過編譯。

處理方式有兩種:

1.使用try..catch..finally進行捕獲;

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

對于運行時異常(runtime exception),可以對其進行處理,也可以不處理。推薦不對運行時異常進行處理。

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

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

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

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

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

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

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

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

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

相關(guān)文章

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

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

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

    htmlcleaner使用方法及xpath語法初探

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

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

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

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

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

    java子線程解決獲取主線程的request對象問題

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

    利用idea搭建SSM項目看這一篇就夠了

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

    springboot項目部署到k8s上的方法步驟

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

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

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

    如何使用jakarta.json進行json序列化和反序列化

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

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

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

最新評論

谢通门县| 镇巴县| 北海市| 曲阜市| 临朐县| 皋兰县| 淮南市| 江津市| 吐鲁番市| 南宁市| 文化| 闻喜县| 扎囊县| 山西省| 全椒县| 津市市| 天等县| 赫章县| 手游| 温州市| 长宁县| 甘肃省| 离岛区| 宽城| 宜阳县| 焦作市| 林州市| 嵊州市| 集贤县| 丰镇市| 彰化县| 木里| 彭山县| 涟水县| 平谷区| 贵州省| 利津县| 东宁县| 曲麻莱县| 华亭县| 通江县|