您好,登錄后才能下訂單哦!
這篇文章主要介紹Java中異常類型是什么,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
錯(cuò)誤是用戶和程序員的禍根。開發(fā)人員顯然不希望他們的程序在每次轉(zhuǎn)彎時(shí)都掉下來,而用戶現(xiàn)在已經(jīng)習(xí)慣了在程序中出現(xiàn)錯(cuò)誤,所以他們不情愿地接受為幾乎肯定會(huì)出現(xiàn)至少一個(gè)錯(cuò)誤的軟件付出代價(jià)。
Java的設(shè)計(jì)目的是讓程序員有機(jī)會(huì)設(shè)計(jì)一個(gè)沒有錯(cuò)誤的應(yīng)用程序。當(dāng)應(yīng)用程序與資源或用戶交互時(shí),程序員可能會(huì)知道一些異常,這些異常是可以處理的。不幸的是,也有程序員無法控制或簡(jiǎn)單忽略的例外情況。簡(jiǎn)而言之,并不是所有的異常都是相同的,因此程序員需要考慮幾種類型。
異常是導(dǎo)致程序無法在其預(yù)期的執(zhí)行中運(yùn)行的事件。異常有三種類型——檢查異常、錯(cuò)誤和運(yùn)行時(shí)異常。
The Checked Exception(檢查異常)
已檢查異常是Java應(yīng)用程序應(yīng)該能夠處理的異常。例如,如果應(yīng)用程序從文件中讀取數(shù)據(jù),它應(yīng)該能夠處理FileNotFoundException。畢竟,無法保證預(yù)期的文件會(huì)出現(xiàn)在它應(yīng)該出現(xiàn)的位置。文件系統(tǒng)上可能發(fā)生任何事情,應(yīng)用程序?qū)Υ艘粺o所知。
讓我們進(jìn)一步看看這個(gè)例子。假設(shè)我們使用FileReader類來讀取字符文件。如果你看一看Java api中的FileReader構(gòu)造函數(shù)定義,你會(huì)發(fā)現(xiàn)它的方法簽名:
public FileReader(String fileName) throws FileNotFoundException
如您所見,構(gòu)造函數(shù)明確聲明FileReader構(gòu)造函數(shù)可以拋出FileNotFoundException。這是有意義的,因?yàn)槲募址芸赡軙?huì)不時(shí)出錯(cuò)。請(qǐng)看下面的代碼:
public static void main(String[] args){ FileReader fileInput = null; //打開輸入文件 fileInput = new FileReader("Untitled.txt"); }
從語法上來說,這些語句是正確的,但是這些代碼永遠(yuǎn)不會(huì)編譯。編譯器知道FileReader構(gòu)造函數(shù)可以拋出FileNotFoundException,而處理此異常則取決于調(diào)用代碼。有兩個(gè)選擇-首先,我們可以通過指定一個(gè)throw子句來傳遞異常:
public static void main(String[] args) throws FileNotFoundException{ FileReader fileInput = null; //打開輸入文件 fileInput = new FileReader("Untitled.txt"); }
或者我們可以處理例外情況:
public static void main(String[] args){ FileReader fileInput = null; try { //打開輸入文件 fileInput = new FileReader("Untitled.txt"); } catch(FileNotFoundException ex) { //告訴用戶去找文件 } }
編寫良好的Java應(yīng)用程序應(yīng)該能夠處理檢查過的異常。
Errors(錯(cuò)誤)
第二種異常稱為錯(cuò)誤。當(dāng)異常發(fā)生時(shí),JVM將創(chuàng)建一個(gè)異常對(duì)象。這些對(duì)象都派生自可拋出類??蓲伋鲱愑袃蓚€(gè)主要子類——錯(cuò)誤和異常。Error類表示應(yīng)用程序不太可能處理的異常。
這些例外被認(rèn)為是罕見的。例如,JVM可能會(huì)因?yàn)橛布o法處理它必須處理的所有進(jìn)程而耗盡資源。應(yīng)用程序可以捕獲錯(cuò)誤并通知用戶,但通常應(yīng)用程序必須關(guān)閉,直到底層問題得到處理。
Runtime Exceptions(運(yùn)行時(shí)異常)
發(fā)生運(yùn)行時(shí)異常僅僅是因?yàn)槌绦騿T犯了錯(cuò)誤。你已經(jīng)寫好了代碼,編譯器會(huì)覺得一切都很好當(dāng)你運(yùn)行代碼時(shí),它會(huì)崩潰,因?yàn)樗噲D訪問一個(gè)不存在的數(shù)組元素或者一個(gè)邏輯錯(cuò)誤導(dǎo)致一個(gè)方法被調(diào)用為空值?;蛘叱绦騿T可能犯的任何數(shù)量的錯(cuò)誤。但是沒關(guān)系,我們通過詳盡的測(cè)試來發(fā)現(xiàn)這些異常,對(duì)吧?
錯(cuò)誤和運(yùn)行時(shí)異常屬于未檢查異常的類別。
以上是Java中異常類型是什么的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。