欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java的異常類(lèi)型總結(jié)

 更新時(shí)間:2019年01月27日 11:01:38   投稿:laozhang  
在本篇文章里小編給大家分享了關(guān)于Java的異常類(lèi)型的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們跟著學(xué)習(xí)下。

Java的設(shè)計(jì)目的是讓程序員有機(jī)會(huì)設(shè)計(jì)一個(gè)沒(méi)有錯(cuò)誤的應(yīng)用程序。當(dāng)應(yīng)用程序與資源或用戶交互時(shí),程序員可能會(huì)知道一些異常,這些異常是可以處理的。不幸的是,也有程序員無(wú)法控制或簡(jiǎn)單忽略的例外情況。簡(jiǎn)而言之,并不是所有的異常都是相同的,因此程序員需要考慮幾種類(lèi)型。

異常是導(dǎo)致程序無(wú)法在其預(yù)期的執(zhí)行中運(yùn)行的事件。異常有三種類(lèi)型——檢查異常、錯(cuò)誤和運(yùn)行時(shí)異常。

The Checked Exception(檢查異常)

已檢查異常是Java應(yīng)用程序應(yīng)該能夠處理的異常。例如,如果應(yīng)用程序從文件中讀取數(shù)據(jù),它應(yīng)該能夠處理FileNotFoundException。畢竟,無(wú)法保證預(yù)期的文件會(huì)出現(xiàn)在它應(yīng)該出現(xiàn)的位置。文件系統(tǒng)上可能發(fā)生任何事情,應(yīng)用程序?qū)Υ艘粺o(wú)所知。

讓我們進(jìn)一步看看這個(gè)例子。假設(shè)我們使用FileReader類(lèi)來(lái)讀取字符文件。如果你看一看Java api中的FileReader構(gòu)造函數(shù)定義,你會(huì)發(fā)現(xiàn)它的方法簽名:

public FileReader(String fileName)
throws FileNotFoundException

如您所見(jiàn),構(gòu)造函數(shù)明確聲明FileReader構(gòu)造函數(shù)可以拋出FileNotFoundException。這是有意義的,因?yàn)槲募址芸赡軙?huì)不時(shí)出錯(cuò)。請(qǐng)看下面的代碼:

public static void main(String[] args){
FileReader fileInput = null;
//打開(kāi)輸入文件
fileInput = new FileReader("Untitled.txt");
}

從語(yǔ)法上來(lái)說(shuō),這些語(yǔ)句是正確的,但是這些代碼永遠(yuǎn)不會(huì)編譯。編譯器知道FileReader構(gòu)造函數(shù)可以拋出FileNotFoundException,而處理此異常則取決于調(diào)用代碼。有兩個(gè)選擇-首先,我們可以通過(guò)指定一個(gè)throw子句來(lái)傳遞異常:

public static void main(String[] args) throws FileNotFoundException{
FileReader fileInput = null;
//打開(kāi)輸入文件
fileInput = new FileReader("Untitled.txt");
}

或者我們可以處理例外情況:

public static void main(String[] args){
FileReader fileInput = null;
try
{
//打開(kāi)輸入文件
fileInput = new FileReader("Untitled.txt");
}
catch(FileNotFoundException ex)
{
//告訴用戶去找文件
}
}

編寫(xiě)良好的Java應(yīng)用程序應(yīng)該能夠處理檢查過(guò)的異常。

Errors(錯(cuò)誤)

第二種異常稱為錯(cuò)誤。當(dāng)異常發(fā)生時(shí),JVM將創(chuàng)建一個(gè)異常對(duì)象。這些對(duì)象都派生自可拋出類(lèi)??蓲伋鲱?lèi)有兩個(gè)主要子類(lèi)——錯(cuò)誤和異常。Error類(lèi)表示應(yīng)用程序不太可能處理的異常。

這些例外被認(rèn)為是罕見(jiàn)的。例如,JVM可能會(huì)因?yàn)橛布o(wú)法處理它必須處理的所有進(jìn)程而耗盡資源。應(yīng)用程序可以捕獲錯(cuò)誤并通知用戶,但通常應(yīng)用程序必須關(guān)閉,直到底層問(wèn)題得到處理。

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

發(fā)生運(yùn)行時(shí)異常僅僅是因?yàn)槌绦騿T犯了錯(cuò)誤。你已經(jīng)寫(xiě)好了代碼,編譯器會(huì)覺(jué)得一切都很好當(dāng)你運(yùn)行代碼時(shí),它會(huì)崩潰,因?yàn)樗噲D訪問(wèn)一個(gè)不存在的數(shù)組元素或者一個(gè)邏輯錯(cuò)誤導(dǎo)致一個(gè)方法被調(diào)用為空值?;蛘叱绦騿T可能犯的任何數(shù)量的錯(cuò)誤。但是沒(méi)關(guān)系,我們通過(guò)詳盡的測(cè)試來(lái)發(fā)現(xiàn)這些異常,對(duì)吧?

錯(cuò)誤和運(yùn)行時(shí)異常屬于未檢查異常的類(lèi)別。

相關(guān)文章

  • Java的ArrayList擴(kuò)容源碼解析

    Java的ArrayList擴(kuò)容源碼解析

    這篇文章主要介紹了Java的ArrayList擴(kuò)容源碼解析,通過(guò)動(dòng)態(tài)擴(kuò)容,ArrayList能夠在添加元素時(shí)保持高效的性能,擴(kuò)容操作是有一定開(kāi)銷(xiāo)的,但由于擴(kuò)容的時(shí)間復(fù)雜度為O(n),其中n是當(dāng)前元素個(gè)數(shù),所以平均情況下,每次添加元素的時(shí)間復(fù)雜度仍然是O(1),需要的朋友可以參考下
    2024-01-01
  • IDEA 2020.1打開(kāi)時(shí)閃退的問(wèn)題及解決方法(完美解決方法)

    IDEA 2020.1打開(kāi)時(shí)閃退的問(wèn)題及解決方法(完美解決方法)

    這篇文章主要介紹了IDEA 2020.1打開(kāi)時(shí)閃退問(wèn)題及解決方法,本文給大家分享我的處理方案,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Java使用easyExcel導(dǎo)出數(shù)據(jù)及單元格多張圖片

    Java使用easyExcel導(dǎo)出數(shù)據(jù)及單元格多張圖片

    除了平時(shí)簡(jiǎn)單的數(shù)據(jù)導(dǎo)出需求外,我們也經(jīng)常會(huì)遇到一些有固定格式或者模板要求的數(shù)據(jù)導(dǎo)出,下面這篇文章主要給大家介紹了關(guān)于Java使用easyExcel導(dǎo)出數(shù)據(jù)及單元格多張圖片的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • Java實(shí)現(xiàn)通過(guò)IP獲取IP歸屬地的方法(離線+在線)

    Java實(shí)現(xiàn)通過(guò)IP獲取IP歸屬地的方法(離線+在線)

    我們都知道安全攻擊都是在某臺(tái)客戶機(jī)上執(zhí)行某些惡意操作致使服務(wù)端響應(yīng)異常崩潰亦或響應(yīng)數(shù)據(jù)被篡改,首先我想到的是對(duì)訪問(wèn)的web端做一個(gè)IP的校驗(yàn),那么我們首先得知道客戶端的IP是多少,接下來(lái)此文重點(diǎn)介紹如何獲得,需要的朋友可以參考下
    2023-10-10
  • java基于jedisLock—redis分布式鎖實(shí)現(xiàn)示例代碼

    java基于jedisLock—redis分布式鎖實(shí)現(xiàn)示例代碼

    這篇文章主要介紹了jedisLock—redis分布式鎖實(shí)現(xiàn)示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • JPA 加鎖機(jī)制及@Version版本控制方式

    JPA 加鎖機(jī)制及@Version版本控制方式

    這篇文章主要介紹了JPA 加鎖機(jī)制及@Version版本控制方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 解決阿里云OSS使用URL無(wú)法訪問(wèn)圖片的兩種方法

    解決阿里云OSS使用URL無(wú)法訪問(wèn)圖片的兩種方法

    這篇文章主要介紹了解決阿里云OSS使用URL無(wú)法訪問(wèn)圖片的兩種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • SpringBoot 插件化開(kāi)發(fā)模式詳細(xì)總結(jié)

    SpringBoot 插件化開(kāi)發(fā)模式詳細(xì)總結(jié)

    插件化開(kāi)發(fā)模式正在很多編程語(yǔ)言或技術(shù)框架中得以廣泛的應(yīng)用實(shí)踐,大大提升了系統(tǒng)的擴(kuò)展性和伸縮性,也拓展了系統(tǒng)整體的使用價(jià)值,那么為什么要使用插件呢,本文就詳細(xì)介紹SpringBoot 插件化開(kāi)發(fā)模式,感興趣的同學(xué)可以參考下
    2023-06-06
  • 關(guān)于feign接口動(dòng)態(tài)代理源碼解析

    關(guān)于feign接口動(dòng)態(tài)代理源碼解析

    這篇文章主要介紹了關(guān)于feign接口動(dòng)態(tài)代理源碼解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 一文秒懂springboot druid 配置

    一文秒懂springboot druid 配置

    Druid是阿里巴巴開(kāi)發(fā)的一個(gè)連接池,他提供了一個(gè)高效、功能強(qiáng)大、可擴(kuò)展性好的數(shù)據(jù)庫(kù)連接池,區(qū)別于hikari,今天通過(guò)本文給大家分享springboot druid 配置教程,需要的朋友參考下吧
    2021-08-08

最新評(píng)論