1. 程式人生 > >Java學習——異常處理

Java學習——異常處理

學習視訊:https://www.imooc.com/learn/110

 

一.異常介紹

1.Java異常分類

Throwable

    Error(出現程式徹底崩潰)

        VirtualMachineError(虛擬機器錯誤)

        ThreadDeath(執行緒死鎖)

    Excpetion(編碼/環境/使用者操作輸入出現問題)

         RuntimeException(執行時異常,非檢查異常)由java虛擬機器自動丟擲,基本是程式碼邏輯上的問題

             NullPointerException(空指標異常)

             ArrayIndexOutOfBoundsException(陣列下標越界異常)

             ClassCastException(型別轉換異常)

             ArithmeticExcption(算數異常)等等

         CheckException(檢查異常)需要手動新增捕獲和處理語句

             IOException(檔案異常)

             SQLException(SQL異常)

 

二、異常處理

1.捕獲方法:try-catch語句塊

 

tips:當程式丟擲異常時,會就行尋找異常處理程式,所以在進行異常處理時,父類要在子類之後

2.丟擲異常

當該異常不能處理時,將異常丟擲給上一層的程式進行異常處理。

3.自定義異常 

必須繼承於意思相近的異常或者是基類的exception類:class 自定義異常類 extends 異常型別{}

4.異常鏈

自定義異常類

public class DrunkException extends Exception {

	public DrunkException(){
		
	}
	
	public DrunkException(String message){
		super(message);
	}
}
public static void main(String[] args) {
		ChainTest ct = new ChainTest();
		try{
			ct.test2();
		}catch(Exception e){
			e.printStackTrace();
		}
	}

	public void test1() throws DrunkException{
		throw new DrunkException("喝車別開酒!");
	}
	
	public void test2(){
		try {
			test1();
		} catch (DrunkException e) {
			// TODO Auto-generated catch block
			RuntimeException newExc = 
				new RuntimeException(e);
//			newExc.initCause(e);
			throw newExc;
		}
	}