java异常体系_Java 异常体系
1.異常簡介
Java把異常作為一種類,當做對象來處理。所有異常類的基類是Throwable類,兩大子類分別是Error和Exception。
系統錯誤由Java虛擬機拋出,用Error類表示。Error類描述的是內部系統錯誤,例如Java虛擬機崩潰。這種情況僅憑程序自身是無法處理的,在程序中也不會對Error異常進行捕捉和拋出。
異常(Exception)又分為RuntimeException(運行時異常)和CheckedException(檢查時異常),兩者區別如下:
RuntimeException:程序運行過程中才可能發生的異常。一般為代碼的邏輯錯誤。例如:類型錯誤轉換,數組下標訪問越界,空指針異常、找不到指定類等等。
CheckedException:編譯期間可以檢查到的異常,必須顯式的進行處理(捕獲或者拋出到上一層)。例如:IOException, FileNotFoundException等等。
2. 異常的處理
常用關鍵字:try、catch、throw(拋出一個異常,動詞)、throws(聲明一個方法可能拋出的異常)、finally。
2.1throws(聲明異常)
若方法中存在檢查時異常,如果不對其捕獲,那必須在方法頭中顯式聲明該異常,以便于告知方法調用者此方法有異常,需要進行處理。
在方法中聲明一個異常,方法頭中使用關鍵字throws,后面接上要聲明的異常。若聲明多個異常,則使用逗號分割。
若是父類的方法沒有聲明異常,則子類繼承方法后,也不能聲明異常。
2.2??try-catch(捕獲異常)
若執行try塊的過程中沒有發生異常,則跳過catch子句。若是出現異常,try塊中剩余語句不再執行。開始逐步檢查catch塊,判斷catch塊的異常類實例是否是捕獲的異常類型。匹配后執行相應的catch塊中的代碼。如果異常沒有在當前的方法中被捕獲,就會被傳遞給該方法的調用者。這個過程一直重復,直到異常被捕獲或被傳給main方法(交給JVM來捕獲)。
對于try..catch捕獲異常的形式來說,對于異常的捕獲,可以有多個catch。對于try里面發生的異常,他會根據發生的異常和catch里面的進行匹配(按照catch塊從上往下匹配),如果有匹配的catch,它就會忽略掉這個catch后面所有的catch。
如果有finally的話進入到finally里面繼續執行。
try? ctach? fianally 中有return 時,會先執行return ,但是不會返回。在執行完 finally 后 進行返回。
return 的是基本類型數據時, fianlly 里面的語句不會影響 return 的值,
return 的是引用類型數據時,此時已經確定了要返回對象的地址(地址一),后面 fianlly 里面的可以通過修改前面地址一中的內容修改返回的內容,
但是如果將對象指向另一個地址(地址二),則不會影響返回的內容。因為返回的對象地址已經確定為地址一,只能通過修改地址一對象的內容修改返回的信息。
總結
以上是生活随笔為你收集整理的java异常体系_Java 异常体系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 多线程 串行 加锁_java多
- 下一篇: java自我复制_原型模式--自我复制(