CoreJava學習第十一課 異常處理

2021-08-28 23:19:34 字數 2096 閱讀 5966

異常是程式執行過程中不正常的情況.

1.異常的傳遞方式

異常的傳遞方式:    

狀態碼方式:

① 包含的資訊有限

② 可能和正常結果衝突(如果是銀行卡的餘額顯示,則可能和狀態碼衝突)

③ 不強制要求處理(分層開發中,有時狀態碼傳遞到中層時,可能會不傳遞或處理)

異常物件的方式:

通過 throw 手動丟擲異常,相當於 return. 方法丟擲異常後,呼叫者如果不能處理異常,則繼續上拋.

直到該異常被處理,或者直到拋給jvm.jvm獲取異常後,會終止程式執行,並將異常方法呼叫棧資訊輸出

2.throwable類

throwable(父類):

string getmessage() 返回此 throwable 的詳細訊息字串。

void printstacktrace() 將此 throwable 的詳細方法呼叫棧資訊輸出到控制台

|- error 錯誤 嚴重的底層錯誤 無法完全避免 無法處理 不處理

|- exception 異常 可以處理

|-runtimeexception 執行時異常(未檢查異常) 可以完全避免 可處理可不處理 優先避免

編譯器對於程式執行時可能產生的執行時異常,不強制要求提供處理方案.

|-非runtimeexception 編譯時異常(已檢查異常) 不可完全避免 必須處理

編譯器對於程式執行時可能產生的編譯時異常,強制要求必須提供處理方案,否則,編譯出錯.

3.自定義異常:

自定義編譯時異常 繼承 exception

自定義執行時異常 繼承 runtimeexception

提供至少2個構造方法

class myexception extends exception

public myexception(string msg)}​

class myruntimeexception extends runtimeexception

public myruntimeexception(string msg)

}

4.異常的處理:

① 異常的宣告 

當乙個方法無法處理可能產生的異常時,可以在方法宣告處宣告可能丟擲的異常型別,當前方法不再負責處理,交由呼叫者負責處理該型別的異常.

【throw 是乙個動作,表示丟擲;而 throws 是乙個宣告,表示本方法一旦發生這些異常,本方法不作處理,異常由呼叫這個方法的方法來處理。】

​② try catch捕獲異常,並處理

trycatch(異常型別1 e)catch(異常型別2 e)

假設②處**可能產生異常型別1 異常型別2 異常型別3 共3種異常

​ 產生異常型別1的異常,程式執行:① ② ④

產生異常型別2的異常,程式執行:① ② ⑤

產生異常型別3的異常,程式執行:① ② catch無法捕獲,繼續向上丟擲

當try塊中的**產生異常時,會通過catch自上而下的嘗試匹配,一旦匹配捕獲成功,後續catch不再嘗試.

當catch的異常型別有繼承關係時,優先捕獲子類,其次捕獲父類.

5.finally **塊該**塊中的**表示無論如何一定要執行的**.

兩種寫法:

trycatch(異常型別 e)finally

​tryfinally

6.方法覆蓋

① 方法3要素相同

② 訪問修飾符相同或更寬

③ 子類不能宣告丟擲比父類更多(範圍)的異常(見下圖)

Linux第十一課

apache 一 虛擬主機 apache可基於ip位址 主機網域名稱 埠號實現提供多個 同時為外部提供訪問服務的技術。使用網域名稱,要在 etc hosts檔案中做本地強制解析 基於埠號,要注意新增用於監聽埠的引數 二 訪問控制 基於源主機名 源ip位址 或源主機上的瀏覽器特徵等資訊對 上的資源繼續...

第十一課 文法

數量的說法 1 計算物品時的說法。11以上用數字計算。2 量詞 計算人 物時,或要表示某種數量時,物件不同使用的量詞也會不同。量詞直接放在數字後面使用。人 計算人數。但是,乙個人時說 人 兩個人時用 人 人 要唸 臺 計算機械,或汽車,自行車等交通工具時使用。枚 計算薄或扁平的物品。紙張,襯衫,盤子...

第十一課C 異常

異常的機制,格式如下 try 後面可以抓取很多和catch 編譯器會根據 引數來進行匹配 catch char s catch int a catch 表示剩下全部的情況 include include using namespace std classa voidk void voidkk voi...