JavaSE基礎系列之異常
一.異常概念(異常的結構)
1.異常就是"不正常"的含義,在Java語言中主要指程式執行中發生的不正常情況。
2.java.lang.Throwable類是Java語言中錯誤(Error)和異常(Exception)的超類。
其中Error類主要用於描述Java虛擬機器無法解決的嚴重錯誤,通常無法編碼解決,如:JVM掛掉了等。
其中Exception類主要用於描述因程式設計錯誤或偶然外在因素導致的輕微錯誤,通常可以編碼解決,如:0作為除數等。
二.異常產生的原理
java對異常預設的處理方式,是將問題丟擲給上一級。丟擲之前,java會根據錯誤產生的異常類,建立出該類的物件,底層並通過throw關鍵字將異常丟擲給上一級,不斷向上丟擲,直到拋給了JVM虛擬機器,虛擬機器拿到異常之後,就會將錯誤的原因和所在的位置,列印在控制檯。
二.異常分類
java.lang.Exception類是所有異常的超類,主要分為以下兩種:RuntimeException - 執行時異常,也叫作非檢測性異常。IOException和其它異常 - 其它異常,也叫作檢測性異常,所謂檢測性異常就是指在編譯階段都能被編譯器檢測出來的異常。
其中RuntimeException類的主要子類:
ArithmeticException類 - 算術異常
ArrayIndexOutOfBoundsException類 - 陣列下標越界異常
NullPointerException - 空指標異常
ClassCastException - 型別轉換異常
NumberFormatException - 數字格式異常
注意:
當程式執行過程中發生異常但又沒有手動處理時,則由Java虛擬機器採用預設方式處理異常,而預設處理方式就是:列印異常的名稱、異常發生的原因、異常發生的位置以及終止程式。
三.異常的處理方式
在開發當中儘量使用if條件判斷避免異常的發生;若實在避免不了,則進行異常的捕獲; 若實在捕獲不了,則進行異常的丟擲;若希望使用針對性的異常,則需要自定義異常。
1. 量使用if條件判斷來避免異常的發生.例如:物件是否為空。
2.異常捕獲
語法格式 :
try { 編寫可能發生異常的程式碼; }
catch(異常型別 引用變數名) { 編寫針對該類異常的處理程式碼;}
finally { 編寫無論是否發生異常都要執行的程式碼; } //關閉已經開啟的檔案等。
(注意: 當需要編寫多個catch分支時,切記小型別應該放在大型別的前面。)
3.異常的丟擲
基本概念
在某些特殊情況下有些異常不能處理或者不便於處理時,就可以將該異常轉移給該方法的呼叫者,
這種方法就叫異常的丟擲。當方法執行時出現異常,則底層生成一個異常類物件丟擲,此時異常程式碼後續的程式碼就不再執行。
語法格式
訪問許可權 返回值型別 方法名稱(形參列表) throws 異常型別,異常型別,...{ 方法體; }
如:public void show() throws IOException{}
4.自定義異常
基本概念:例如:當需要在程式中表達年齡不合理的情況時,而Java官方又沒有提供這種針對性的異常,此時就需要 程式設計師自定義異常加以描述。
相關文章
- JavaSE基礎:異常處理Java
- JavaSE基礎系列之執行緒Java執行緒
- JavaSE之異常實戰視訊課程Java
- python 基礎之異常處理Python
- PHP基礎之錯誤與異常PHP
- JavaSE之java基礎語法Java
- Java基礎-異常Java
- Java基礎 — 異常Java
- [Java基礎]異常Java
- Java零基礎之異常(新手必看)Java
- java基礎:Exception異常JavaException
- JavaSE基礎:字串Java字串
- JavaSE基礎: 介面Java
- Javase—java基礎Java
- day_19 JavaSE高階_異常Java
- Java基礎知識——異常Java
- Java基礎 ---Throwable異常類Java
- 【Java基礎】--異常處理Java
- Python基礎之錯誤和異常講解Python
- JavaSE基礎:集合類Java
- JavaSE基礎:日期操作Java
- JavaSE基礎:泛型Java泛型
- JavaSE基礎:陣列Java陣列
- JavaSE基礎:抽象類Java抽象
- Java基礎之淺談異常與瞭解斷言Java
- PHP基礎:異常處理ExceptionPHPException
- Java 基礎(十二)異常機制Java
- JAVA物件導向基礎--異常Java物件
- Python基礎 -- 異常處理Python
- JavaSE的基礎語法Java
- JavaSE基礎入門(二)Java
- JavaSE基礎:Collections工具類Java
- JavaSE基礎:包裝類Java
- JavaSE基礎:Arrays工具類Java
- 豬行天下之Python基礎——6.1 異常與斷言Python
- Python基礎之:Python中的異常和錯誤Python
- dart系列之:dart語言中的異常Dart
- Oracle開發基礎-異常處理Oracle