Java異常詳解

來源:互聯網
上載者:User

標籤:tca   ack   err   越界   常用方法   功能   處理   awt   計數   

一、Java異常概述 
在Java中,所有的事件都能由類描述,Java中的異常就是由java.lang包下的異常類描述的。

Throwable(可拋出):異常類的最終父類,它有兩個子類,Error與Exception。 
Throwable中常用方法有: 
getCause():返回拋出異常的原因。如果 cause 不存在或未知,則返回 null。 
getMeage():返回異常的訊息資訊。 
printStackTrace():對象的堆疊追蹤輸出至錯誤輸出資料流,作為欄位 System.err 的值。

 

1、Error(錯誤):表示程式無法處理的錯誤,一般與程式員的執行操作無關。理論上這些錯誤是不允許發生的,如果發生,也不應該試圖通過程式去處理,所以Error不是try-catch的處理對象,而JVM一般的處理方式是終止發生錯誤的線程。Error類常見子類有VirtualMachineError與AWTError。

1-1、VirtualMachineError(虛擬機器錯誤):表示虛擬機器出現錯誤。 
在Java運行時記憶體中,除程式計數器外的虛擬機器棧、堆、方法區在請求的記憶體無法被滿足時都會拋出OutOfMemoryError; 
而如果線程請求的棧深度超出虛擬機器允許的深度時,就會拋出StackOverFlowError。

1-2、AWTError(AWT組件出錯):這個錯誤並不是很常用。但是提一下AWT與Swing的區別,AWT是使用作業系統中的圖形函數的抽象視窗工具,用C\C++編寫,為了實現Java“一次編譯,處處運行”的理念,AWT使用各個作業系統圖形函數的交集,所以功能較差,但運行速度較快,適合嵌入式Java; 
而Swing組件是基於AWT編寫的圖形介面系統,它用純Java編寫,所以必然實現了“一次編譯,處處運行”,但相較於AWT運行速度較慢,適合PC使用。

2、Exception(異常):出現原因取決於程式,所以程式也理應通過try-catch處理。 
異常分為兩類:可查異常與不可查異常。

2-1、可查異常:編譯器要求必須處理,否則不能通過編譯,使用try-catch捕獲或者throws拋出。常見的可查異常有IOException(IO錯誤)及其子類EOFExcption(檔案已結束異常)、FileNotFound(檔案未找到異常)。

2-2、不可查異常(也叫運行時異常):編譯期不會檢查,所以在程式中可不處理,但如果發生,會在運行時拋出。所以這類異常要盡量避免!常見的不可查異常都是RuntimeException類及其子類。

2-2-1、NullPointerException:null 指標異常。調用了不存在的對象或未經執行個體化或初始化的對象時會拋出,如當試圖操作一個Null 物件(賦值為null)的屬性、方法時就會拋出。

(執行個體化:通俗的理解就是為對象開闢空間,使其可在規定範圍內被調用。注意:User u;這隻是一個對象聲明,並沒有進行執行個體化或初始化。 
初始化:就是把執行個體化後的對象中的基礎資料型別 (Elementary Data Type)欄位賦預設值或設定值,為非基本類型賦值null,對於static欄位只會初始化一次。)

2-2-2、ArithmeticException:算術條件異常。最常見的就是0作除數時會拋出。

2-2-3、ClassNotFoundException:類未找到異常。在通過反射Class.forName(“類名”)來擷取類時,如果未找到則會拋出異常。

2-2-4、ArrayIndexOutOfBoundsException:數組索引越界異常。當試圖運算元組的索引值為負數或大於等於數組大小時會拋出。

2-2-5、NegativeArraySizeException:數組長度為負值異常。一般在初始化數組大小為負值時拋出。

2-2-6、ArrayStoreException:數群組類型不匹配值異常。例如將一個Object數組中加入一個Integer對象與一個String對象時,類型不符就會拋出。

2-2-7、IllegalArgumentException:非法參數異常。會在使用Java類庫方法時傳入參數值越界時拋出。

Java異常詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.