異常初探(四)

package com.liujunhua.it01;

/**
 * 自定義異常: 項目中可能會出現一些特有的問題,而這些問題並沒有被java描述並封裝成對象。 所以需要自定義異常。
 * 
 * 自定義異常必須繼承Exception類,異常體系有一個特點,異常類和異常對象都要被拋出。他們都具有可拋性,
 * 可拋性是Throwable這個體系獨特的特點。只有這個體系中的類纔可以被throw和throws操作。
 * 
 * 需求:在本程序中,對於除數是負數,也視爲是錯誤的。且無法運算,那麼就要進行自定義運算了。
 * 
 * 當函數的內部出現了throw拋出異常對象,那麼就必須要給對應的操作。
 * 一般有兩種處理辦法,可以在內部進行try{}catch{}處理,也可以在函數上聲明,讓調用者處理。
 */
public class Demo03 {

	public static void main(String[] args) {

		ExceptionTest exceptionTest = new ExceptionTest();
		
		try {
			
			int x = exceptionTest.div(4, -1);
		    System.out.println("x = " + x);
		    
		} catch (Exception e) {
			
			System.out.println(e.toString());
		}
		
		
		System.out.println("**********************");
	}

}

class FuShuException extends Exception{
	/**
	 * 問題來了,怎麼自定義異常信息呢?
	 * 其實父類中已經把異常信息的操作都完成了,既然子類都管父類叫爹了,當然可以用這些方法的。
	 * 只需要在子類的構造方法中,通過super語句傳遞給父類就可以了。此時就可以直接通過getMessage方法來獲取自定義的異常了。
	 */
	FuShuException(String smg){
		super(smg);
	}
}

class ExceptionTest {

	int div(int a, int b) throws FuShuException {
		if(b < 0){
			throw new FuShuException("除數爲負數");//通過throw手動的拋出一個自定義的異常對象。
		}
		return a / b;
	}
	
}

發佈了71 篇原創文章 · 獲贊 9 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章