如何理解java中的異常和異常處理

異常與異常處理

工具/原料

eclipse

方法/步驟

對於異常的正常處理,能夠將異常提供給編程人員,或者是用戶,使得本來已經中斷了的程序以適當的方式繼續運行,或者是退出,並且能夠保存用戶的當前操作,或者進行數據回滾,最後再把占用的資源釋放掉。

java中所有不正常類都繼承於Throwable

Throwable有兩個子類,一個是Error,一個是Exception.

Error的出現有兩種情況 一種是:虛擬機錯誤,一種是線程死鎖ThreadDeath

Error出現是硬傷,系統問題。

而Exception 的出現則是因為你的編碼,環境,或者操作輸入出現了問題。

Exception有很多子類

一種是RuntimeException(非檢查異常),其他的異常則是(檢查異常)

能夠引起 運行時異常有這樣幾種情況:引用了一個空對象的屬性或者方法;也有可能是數組訪問越界;或者是一個錯誤的類型轉換,也有可能是算數方面引起的異常,比如說用整數去整除零。

空指針異常(NullPointerException)

String str=null;

System.out.println(str.length());

數組下標越界(ArrayIndexOutOfBoundsException)

int[] ary={1,2,3}

for{int i=0;i<=3;i++){

System.out.println(ary[i]);

}

類型轉換異常(ClassCastException)

class Animal{

}

class Dog extends Animal{

}

class Cat extends Animal{

}

public class Test{

public static void main(String[] args){

Animal a1=new Dog();

Animal a2=new Cat();

Dog d1=(Dog)a1;

Dog d2=(Dog)a2;

算數異常(ArithmeticException)

int one=12;

int two=0;

System.out.println(one/two);

運行時異常會由java虛擬機自動拋出,並自動捕獲。

運行時出現異常大部分情況說明代碼本身有問題,應該從邏輯上去改進代碼。

檢查異常

可能會出現文件異常(IOEXception)或者SQL異常等等各種各樣你想像不到的原因。你需要手動添加捕獲,或者處理語句。

本文內容整理自網絡, 文中所有觀點看法不代表淘大白的立場