一、finally,finally塊中放入一定要執行的**,通常用來關閉資料庫,關閉鏈結,節約資源,所以finally中的內容一定要被執行,但是有一張情況不被執行,就是catch(exception e)執行這個語句,系統直接退出了。
二、對異常的總結;
1.異常的概念:程式執行有可能出現問題,然後把問題進行物件的封裝。
2.體系:throwable:異常分為兩種:一種是嚴重的情況,用error表示,一般不作處理,它的子類都以error作為字尾;另一種是不嚴重的異常,它用exception表示,它的子類都以exception作為字尾,其中有乙個比較特殊的子類,就是runtimelexception 執行時異常,丟擲此異常,不用在函式體上宣告,編譯時不做處理;如果宣告了,呼叫者可以處理,也可以不作處理,程式停止執行,需要修改傳入的引數;
3、區別兩個關鍵字的使用:throw和throws:
throw:是定義在函式體內,用來丟擲物件;而throws定義在函式體上,用來丟擲異常類名。
4.異常按照處理過程中分類為兩種:
(1)、編譯時異常:丟擲異常物件時,要宣告丟擲異常,如果不宣告;編譯出錯,如果宣告了,呼叫者,就要做出相應的處理;要麼丟擲,要麼try,否則出錯;
(2)、執行時異常:就是編譯時不做處理,然後執行時,程式停止執行。runtimeexception,這時就要修改傳遞進來的引數。
5、異常處理的幾種格式:
try catch(exception e)
try catch(exception e)finally
try finally
6.異常在子父類中的體現:如果子類重寫了父類中的方法,而父類中的方法丟擲異常,那麼子類要麼丟擲父類異常,要麼丟擲子類異常,總之,要讓父類異常能夠處理。
7.如果父類方法丟擲多個異常,那麼子類在重寫父類中的方法時,只能丟擲父類異常的子類。
8,如果父類或者介面中的方法沒有異常丟擲,那麼子類在覆蓋方法時,也不可以丟擲異常,如果子類中確實出現了異常,那麼就必須處理,絕對不能丟擲。
下面通過乙個**來體現一下:
class exceptiondemo6
}//定義乙個異常
class novalueexception extends runtimeexception
}//定義乙個介面,裡面有乙個方法,獲取面積
inte***ce cir
//定義乙個圓
class circle implements cir
public void getarea()}
關於java異常在實際應用中經驗與總結
總結 1 處理執行時異常時,採用邏輯去合理規避同時輔助try catch處理 2 在多重catch塊後面,可以加上乙個catch exception 來處理可能會被遺漏的的異常 3 不確定是否會丟擲異常,可以加上try catch處理潛在可能會丟擲的異常 4 盡量去處理異常,因為異常說明了很多問題,...
關於C 委託應用與總結
什麼是委託?官方解釋 委託是一種定義方法簽名的型別。當例項化委託時,您可以將其實例與任何具有相容簽名的方法相關聯。您可以通過委託例項呼叫方法。個人理解 委託是乙個持有乙個或多個方法的物件,並且該物件可以被執行,可以被傳遞 使用方法 首先建立乙個類或多個類並且建立方法有無引數都可以 使用關鍵字 del...
異常捕獲時的return和finally
以前一直認為在try,catch,finally中,try中的return 會在finally之後執行,今天和同事遇到,然後重新測試了一下,如下 主方法 param args public static void main string args 測試方法 return private static...