異常是乙個物件,描述了一段**中出現的不正常情況。
throwable是所有錯誤和異常的超類。
一.error和exception的區別和聯絡。
1.error:錯誤,不編寫針對性的**。如記憶體溢位,找不到檔案。
2.exception:異常,編寫針對性**處理。如轉型異常,丟失資料異常。
二.異常的處理方式:
1.捕獲異常:try...catch ,直接處理可能出現的異常。
先捕獲小異常再捕獲大異常。異常處理後,程式不會退出。
2.丟擲異常:throws , 宣告告訴呼叫者可能的異常,由呼叫者來處理。
三.異常的分類
1.編譯時異常。非runtime異常。要麼丟擲,要麼處理。,
2.執行時異常。runtime異常。無需使用throws關鍵字或try..catch語句
四.throw和throws的區別
1.throw 用於方法體內,丟擲乙個具體的異常類物件。throw後面跟異常物件,只能是乙個。
通過throw丟擲異常後:
若想由上一級**來捕獲並處理異常,則同樣需要在丟擲異常的方法宣告中使用throws關鍵字宣告要處理的異常。
若想在當前方法中捕獲並處理throw丟擲的異常,則必須使用try..catch語句。
2.throws用於方法上,宣告該方法可以丟擲的(不處理的)異常。throws後面跟異常類名,可是多個異常。多個異常可用逗號分隔。
五.finally**塊
1.finally語句中的**塊一定會執行。通常在finally語句中進行資源的清除動作,如關閉資源。
2.finally**塊只在一種情況下不執行,system.exit(0);
Java基礎知識點總結
一 方法的過載 方法的過載與返回值型別無關,只需滿足兩個條件即可 一是方法名相同,二是引數個數或型別不同。二 陣列初始化 動態初始化 在定義陣列時,只指定陣列長度,由系統自動為元素賦值的方式。靜態初始化 在定義陣列時為每個元素賦值。有兩種方式 陣列靜態初始化的方式有兩種 1.型別 陣列名 new 型...
java基礎知識點 5
7.抽象類和介面區別 1.抽象類 如果乙個類含有抽象方法,則稱這個類為抽象類,抽象類必須在類前用abstract關鍵字修飾。因為抽象類中含有無具體實現的方法,所以不能用抽象類建立物件。2.抽象類和普通類的主要有三點區別 1 抽象方法必須為public或者protected 因為如果為private,...
java基礎知識點複習
物件導向程式設計有三大特性 封裝,繼承,多型 多型時父類跟子類的建構函式都會被呼叫?答 子類預設呼叫父類的無參構造方法,所以如果子類沒有顯示呼叫父類的構造方法,父類中沒有無參的的建構函式,編譯出錯 多型 1.實現多型的三個條件 a.必須要有繼承關係子類跟父類 b.子類要重寫父類的方法,子類對父類的方...