所有能夠處理的例外都是繼承 Exception 類別,因此我們自行設計的例外類別 基本上就是直接繼承這個例外類別


public class ExtendsExceptionDemo {

	public static void main(String[] args) {
		try{
			ExtendsExceptionDemo.mytest(null);//我們故意丟一個null進來讓他產生exception
		}
		catch(AnyException e) {//抓到自訂類別名稱AnyException
			System.out.println("例外發生->"+e.getMessage());
		}

	}
	static void mytest(String str) throws AnyException{//發生自訂的例外類別的時候丟回呼叫的method那邊
		if(str == null) {
			throw new AnyException("字串不得為\"null\"");//丟到並產生新自訂類別到記憶體
		}
	}
}
//自訂類別名稱AnyException,整組繼承Exception的類別
class AnyException extends Exception{//用一般類別AnyExcption 去繼承例外類別 Exception
	private String m = null;//初值設置為null
	//建構元 多載
	public AnyException() {//建構元去執行父類(例外類別class)建構元的程序
		super();
	}
	public AnyException(String m) {
		this.m = m;
	}
	//**重點,當建構元承接到bug狀況(Throwable)的時候,要執行這組建構元
	public AnyException(Throwable cace) {
		super(cace);//把bug狀況用父類的例外類別去執行
	}
	
	//複寫父類的程序變成自己的
	@Override
	public String toString() {
		return m;
	}
	@Override
	public String getMessage() {
		return m;
	}
	
}

參考資料: https://ithelp.ithome.com.tw/articles/10185705

Steven玄

謝謝您觀看本站內容!! 😅 西元93年台灣男,軟體前、後、資料庫工程師 和 多元收入實踐,程式設計、網站系統規劃、商業策略分析規劃、多元收入研究,目前在網站開發公司擔任工程師。

發佈留言