Java- 異常處理

Java- 異常處理

  1. 異常處理能夠使一個(gè)方法給它的調(diào)用者拋出一個(gè)異常。
  2. Java異常是派生自 java.lang.Throwable的類的實(shí)例。Java 提供大量預(yù)定義的異常類,例如,Error、ExceptionRuntimeException、ClassNotFoundExceptionNullPointerExceptionArithmeticException。也可以通過(guò)擴(kuò)展 Exceotion 類來(lái)定義自己的異常類。
  3. 異常發(fā)生在一個(gè)方法的執(zhí)行過(guò)程中。RuntimeExceptionError 都是免檢異常,其他所有的異常都是必檢的。
  4. 當(dāng)聲明一個(gè)方法時(shí),如果這個(gè)方法可能拋出一個(gè)必檢異常,則必須聲明為必檢異常,告訴編譯器可能會(huì)出現(xiàn)什么異常。
  5. 聲明異常的關(guān)鍵字是 throws,而拋出異常的關(guān)鍵字 throw
  6. 如果調(diào)用聲明了必檢異常的方法,必須將該方法調(diào)用放在 try 語(yǔ)句中。在方法執(zhí)行過(guò)程中出現(xiàn)異常時(shí),catch 塊會(huì)捕獲并處理異常。
  7. 如果一個(gè)異常沒有被當(dāng)前方法捕獲,則該異常被傳給調(diào)用者。這個(gè)過(guò)程不斷重復(fù)直到異常被捕獲或者傳遞給 main 方法。
  8. 可以從一個(gè)通用的父類派生出各種不同的異常類。如果一個(gè) catch 塊捕獲到父類的異常對(duì)象,它也能捕獲這個(gè)父類的子類的所有異常對(duì)象。
  9. catch 塊中,異常被指定順序是非常重要的。如果在一個(gè)類的父類的異常對(duì)象之前沒有指定這個(gè)類的一個(gè)異常對(duì)象,就會(huì)導(dǎo)致一個(gè)編譯錯(cuò)誤。
  10. 當(dāng)方法中發(fā)生異常時(shí),如果異常沒有被捕獲,方法將會(huì)立刻退出。如果方法想在退出前執(zhí)行一些任務(wù),可以在方法中捕獲這個(gè)異常,然后再重新拋給真正的處理器。
  11. 任何情況下都會(huì)執(zhí)行 finally 塊中的代碼,不管 try 塊中是否出現(xiàn)或者捕獲了異常。
  12. 異常處理將錯(cuò)誤處理代碼從正常的程序設(shè)計(jì)任務(wù)中分離出來(lái),這樣,就會(huì)使得程序更易于閱讀和修改。
  13. 不應(yīng)該使用異常處理代替簡(jiǎn)單的測(cè)試。應(yīng)該盡可能地測(cè)試簡(jiǎn)單異常,將異常處理保留為處理那些無(wú)法用 if 語(yǔ)句處理的異常。

必檢異常是指:編譯器會(huì)強(qiáng)制程序員檢查并處理它們。
免檢異常:在大多數(shù)情況下,免檢異常都會(huì)反映出程序設(shè)計(jì)上不可恢復(fù)的邏輯錯(cuò)誤。例如:如果通過(guò)一個(gè)引用變量訪問(wèn)一個(gè)對(duì)象之前并未將一個(gè)對(duì)象賦值給它,就會(huì)拋出 NullPointerException 異常;如果訪問(wèn)一個(gè)數(shù)組的越界元素,就會(huì)拋出 IndexOutOfBoundsException 異常。這些都是程序中必須糾正的邏輯錯(cuò)誤。免檢異??赡茉诔绦虻娜魏我粋€(gè)地方出現(xiàn)。為了避免過(guò)多的使用 try-catch 塊,Java 語(yǔ)言不允許編寫代碼捕獲或聲明免檢異常。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 異常分類 Java將異常分為兩種,Checked異常和Runtime異常。Java認(rèn)為Checked異常都是可以在...
    LLorenzo閱讀 863評(píng)論 0 1
  • 六種異常處理的陋習(xí) 你覺得自己是一個(gè)Java專家嗎?是否肯定自己已經(jīng)全面掌握了Java的異常處理機(jī)制?在下面這段代...
    Executing閱讀 1,410評(píng)論 0 6
  • 2.JAVA異常 異常指不期而至的各種狀況,如:文件找不到、網(wǎng)絡(luò)連接失敗、非法參數(shù)等。異常是一個(gè)事件,它發(fā)生在程...
    青城樓主閱讀 601評(píng)論 0 0
  • 初識(shí)異常(Exception) 比如我們?cè)谌?shù)組里面的某個(gè)值得時(shí)候,經(jīng)常會(huì)出現(xiàn)定義的取值范圍超過(guò)了數(shù)組的大小,那么...
    iDaniel閱讀 1,967評(píng)論 1 2
  • 概念介紹 異常是發(fā)生在程序執(zhí)行過(guò)程中阻礙程序正常執(zhí)行的錯(cuò)誤事件,當(dāng)一個(gè)程序出現(xiàn)錯(cuò)誤時(shí),可能的情況有如下3種: 語(yǔ)法...
    niaoge2016閱讀 5,621評(píng)論 2 20

友情鏈接更多精彩內(nèi)容