1.自定義異常一: 繼承runtmeexcepyion,即執行期間異常;
由於我們自定義的是執行期間的異常,我們丟擲異常,程式始終不作處理,程式編譯的時候不會報錯,但是執行的時候會報錯,因此會中斷程式.
2.自定義異常一: 繼承excepyion,即編譯期間異常;
跟上面相反,丟擲異常,必須要處理,不然不會通過編譯過程,我們可以用trycatch(exption e),或者throws往上一級拋.
注意: 下面有上面兩種情況的例子
1.自定義異常一: 繼承runtmeexcepyion,即執行期間異常;
public class nolifevalueexption extends runtimeexception
public nolifevalueexption(string message)
}
定義乙個person類,人的生命不能為負數,在setlifevalue判斷是否異常
public class person
public person(string name, int lifevalue)
// 4.提供setter和getter方法
public string getname()
public void setname(string name)
public int getlifevalue()
// 5.在setlifevalue方法裡面判斷是否異常(生命值不能為負數),
public void setlifevalue(int lifevalue)
this.lifevalue = lifevalue;//沒有異常在賦值
}}
定義測試類:
由於我們自定義的是執行期間的異常,所以程式編譯的時候不會報錯
public class demo
}
2.自定義異常二: 繼承excepyion,即編譯期間異常;
public class nolifevalueexption extends exception
public nolifevalueexption(string message)
}
定義乙個person類,人的生命不能為負數,在setlifevalue判斷是否異常
public class person
public person(string name, int lifevalue)
// 4.提供setter和getter方法
public string getname()
public void setname(string name)
public int getlifevalue()
// 5.在setlifevalue方法裡面判斷是否異常(生命值不能為負數),編譯異常我們要往上拋或處理
public void setlifevalue(int lifevalue) throws exption
this.lifevalue = lifevalue;//沒有異常在賦值
}}
定義測試類:
public class democatch (nolifevalueexption e)
system.out.println("程式執行完畢");
}}
執行時期異常
runtimeexception和他的所有子類異常,都屬於執行時期異常。nullpointerexception,arrayindexoutofbound ception等都屬於執行時期異常.執行時期異常的特點 1 方法中丟擲執行時期異常,方法定義中無需throws宣告,呼叫者也無需處理此異常 2 ...
java執行時異常和非執行時異常的區別
建議使用執行時異常和編譯時異常叫法,便於區分和理解 非執行時異常是什麼異常?很懵逼 編譯時異常 程式沒有通過編譯器的編譯,必須處理掉這個異常程式才能正常執行,比如檔案路徑找不到異常,類找不到異常,io異常,必須用try catch或是throwable處理掉才能編譯通過 可以理解為一種特殊的語法錯誤...
oracle自定義函式的執行時間
oracle中的pl sql 會涉及到兩個執行引擎,乙個專門處理標準的sql語句,另外乙個處理pl sql的過程 一般在引擎切換上會帶來cpu額外的開銷。比如foreach迴圈語句和普通for迴圈的區別,就是foreach消除了引擎切換,一直駐留在執行標準sql的引擎中,從而縮短了執行時間。現在有乙...