這篇文章帶給大家的內容是關於java中異常及異常處理的內容講解(圖文),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
概述:異常就是java程式在運作過程中出現的錯誤。
異常發生時如何處理,java提供了解決方法:異常處理機制。
java中的例外可以是函數中的語句執行時引發的,也可以是程式設計師透過throw語句手動拋出。
只要在java程式中產生了異常,就會用一個對應類型的異常物件來封裝異常,JRE會試圖尋找異常處理程序來處理異常。
JDK中內建類別一些常見的異常類,我們也可以自訂異常。
Throwable類別是java異常類型的頂層父類,一個物件只有是Throwable類別的直接或間接實例,他才是一個異常對象,才能被異常處理機制辨識。
檢查性異常:
(1)最具代表性的檢查性異常是用戶錯誤或問題引起的例外,這是程式設計師無法預測的。
(2)例如要開啟一個不存在檔案時,一個異常就發生了,這些異常在編譯時不能被簡單的忽略。
運行時異常:
(1)運行時異常是可能被程式設計師避免的例外。
(2)與檢查性異常相反,運行時異常可以在編譯時被忽略。
錯誤:
(1)錯誤不是異常,而是脫離程式設計師控制的問題。
(2)錯誤在程式碼中通常被忽略。
(3)例如,當堆疊溢位時,一個錯誤就發生了,它們在編譯時也是檢查不到的。
異常分類圖解:
java標準函式庫內建了一些通用的異常,這些類別以Throwable為頂層父類別。
Throwable又衍生出Error類別和Exception類別。
Error類別:
(1)Error類別以及他的子類別的實例,代表了JVM本身的錯誤。
(2)錯誤不能被程式設計師透過程式碼處理,Error很少出現。
(3)因此,程式設計師應該關注Exception為父類別的分支下的各種異常類別
Exception類別:
(1)Exception及他的子類,代表程式運行時發送的各種不期望發生的事件。
(2)可以被java異常處理機制使用,是異常處理的核心。
異常處理機制能讓程式在發生異常時,按照程式碼預先設定的異常處理邏輯,針對性的處理異常,讓程式盡最大可能的恢復正常並繼續執行,且保持程式碼的清晰。在
java中,異常處理的任務就是將執行控制流從異常發生的地方轉移到能夠處理這種異常的地方去。
在編寫程式碼處理異常時,對於檢查異常,有兩種處理方式:
(1)使用try...catch...finally語句區塊處理
(2 )在函數簽章中使用throws宣告交給函數呼叫者caller去解決
try...catch...finally語句區塊:
(1)try區塊中放可能發生異常的程式碼;
(2)如果執行完try並且不發生異常,則接著去執行finally區塊程式碼以及finally之後的程式碼;
(3)如果執行try中程式碼發生異常,就會嘗試匹配catch塊;
(4)每一個catch塊用於處理一個異常;
(5)異常匹配是按照catch塊的順序從上往下尋找的,只有第一個會匹配到的catch區塊會被執行。
(6)try區塊中的局部變數和catch區塊中的局部變量,以及finally中的局部變量,它們之間不可以共享使用;
(7)finally區塊不管異常是否發生,只要對應的try區塊執行了,它一定會執行。
(8)finally區塊通常用來做資源釋放操作,關閉檔案或關閉資料庫等操作。
throws/throw:
(1)如果一個方法沒有捕獲到一個檢查性異常,那麼該方法必須使用 throws 關鍵字來宣告。
(2)throws 關鍵字放在方法簽署的尾部。
(3)throws只是將函數中可能出現的異常向呼叫者聲明,而自己並沒有處理異常。
(4)採用這種異常處理的原因可能是:方法本身不知道如何處理這種異常,或者說讓呼叫者處理更好,呼叫者需要為可能發生的異常負責。
(5)也可以使用 throw 關鍵字手動拋出一個異常,無論它是新實例化的還是剛捕獲到的。
(6)throw語句的後面必須是一個異常物件。
以上是java中異常及異常處理的內容講解(圖文)的詳細內容。更多資訊請關注PHP中文網其他相關文章!