------Java培訓、Android培訓、iOS培訓、.Net培訓、期待與您交流! -------
------小弟在因特網的小窩,祝願所有的朋友身體健康-------
異常是JAVA對不正常對不正常情況作爲對象的描述;
他把JAVA中出現的問題都封裝爲對象;
問題分嚴重的和不太嚴重的;
嚴重的通過error類描述;
不太嚴重的通過exception描述;
他們都是thorwable的子類;
異常的處理:
try
catch
finally
一個方法可能出現異常時,定義時後面加throws 異常類;
調用這個方法的傢伙就必須處理這個異常;這是強制的;
處理的方式 要麼捕捉 要麼拋出去;
聲明異常時要儘量具體;
可以一次拋出多個異常;
catch只處理與其匹配的異常;
catch的執行順序是順序的順序的;
所以對應父類的catch要放在最下面;
catch不要做多餘的,不需要處理的不去處理;
異常處理時,一般不會輸出到控制檯,最好輸出到日誌文件,方便在應用環境中收集異常情況信息;
自定義異常:
JAVA中不認爲是異常,但我們認爲它是異常的東東,比如畢老師不允許除數是負數;
if(異常情形)throw new 自定義異常類;
函數內的拋出,必須處理;處理的可以suround try catch 也可以聲明throws;
輸出想要的信息,可以覆蓋getmessage方法;
自定義異常繼承exception 實現throwable;
throws和throw區別;一個用在聲明上 一個具體拋動作;
throw的是對象 throws的是類;
throw new 算數異常,構造參數丟入自定義的字符串,輸出就好看了;
runtime異常比較特殊,因爲他沒辦法實質處理,只能停止執行;
函數內拋出runtime或者他的子類不用在函數上聲明瞭;如果聲明瞭,調用者也無需處理;因爲此類異常,通常都需要程序停止執行;
無法繼續執行的異常,就讓他繼承runtime異常去吧;
異常分編譯時異常 運行時異常;
finally中存放一定會執行的代碼,例如關閉數據庫 關閉文件等等;
沒有異常也可以看做是一種異常;
3個常見格式:
try
catch
try
catch
finally
try
finally
子類拋異常時,可以拋父類拋過得或其子類的;
父類拋多個,子類只能拋個子集;
父類如果沒有拋出東西,子類在覆蓋時只能try catch不能拋;
catch中什麼都不寫是不好的;
throw了但是沒聲明 下面不能放語句 因爲可能執行不到 throw了就over了;
return和finlly後面都不適合放東西,執行不到的;