Java中異常有哪些類(lèi)型?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
10余年的陽(yáng)江網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷(xiāo)的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整陽(yáng)江建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“陽(yáng)江網(wǎng)站設(shè)計(jì)”,“陽(yáng)江網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
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ù)可以?huà)伋鯢ileNotFoundException。這是有意義的,因?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ù)可以?huà)伋鯢ileNotFoundException,而處理此異常則取決于調(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) { //告訴用戶(hù)去找文件 } }
編寫(xiě)良好的Java應(yīng)用程序應(yīng)該能夠處理檢查過(guò)的異常。
Errors(錯(cuò)誤)
第二種異常稱(chēng)為錯(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ò)誤并通知用戶(hù),但通常應(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訪(fǎng)問(wèn)一個(gè)不存在的數(shù)組元素或者一個(gè)邏輯錯(cuò)誤導(dǎo)致一個(gè)方法被調(diào)用為空值?;蛘叱绦騿T可能犯的任何數(shù)量的錯(cuò)誤。
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。