C 學習筆記 (19)異常

2021-10-02 11:02:25 字數 1736 閱讀 2489

為什麼要進行異常處理

如果沒有異常處理,當出現問題時,作業系統會直接將程式終止,處理方式不太友好。因此需要更友好一些的方式來處理異常。

例如如下**:

static

void

main

(string

args)

catch

finally

將**放到try中進行執行,如果出現異常首先到catch中尋找可以解決的方法,使使用者重新嘗試,而不是直接送到作業系統中處理。try和catch不能單獨出現。

丟擲異常

throw語句

當出現異常時,用throw語句丟擲異常,讓使用**的人可以捕獲乙個異常。

exception語句

.net系統中已經定義好的系統的基類。可以例項化成異常的物件,也可以作為定義自己異常的基類。

當定義自己的異常時,推薦的建構函式3個

例題-異常處理

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

//除數為0,捕獲異常

//格式不正確,捕獲異常

//指定乙個dividebyzeroexception的異常,存到dividebyzero中

catch

(dividebyzeroexception dividebyzero)

//b輸入不正確

catch

(formatexception formatexception)

//格式不正常}}

}}

例題-丟擲異常,自定義異常,throw和finally
using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

//丟擲異常

//自定義異常

//.net的異常層次

//throw和finally

catch

(myexception e)

finally

//finally無論如何都會被執行}}

public

class

fffset

else}}

}//定義乙個自己的異常類。所有的異常都是有exception派生的

public

class

myexception

:exception

//建構函式2,帶乙個字串,讓使用者指定乙個字串來顯示資訊

public

myexception

(string message)

:base

(message)

//建構函式3,表示這個異常是由另外乙個異常引發的,而另乙個異常存在exception中

public

myexception

(string message,

exception e)

:base

(message, e)

}}

C 學習筆記 19

std map 和 std unordered map 特性和各操作時間複雜度?1 std map對應的資料結構是紅黑樹。紅黑樹是一種近似於平衡的二叉查詢樹,裡面的資料是有序的。在紅黑樹上做查詢 插入 刪除操作的時間複雜度為o logn 2 std unordered map對應雜湊表,雜湊表的特點...

python3 異常學習筆記(19)

python的異常 異常處理try except 異常捕捉可以使用 try except 語句。try 被執行的 except 產生異常時執行的 try 語句按照如下方式工作 首先,執行 try 子句 在關鍵字 try 和關鍵字 except 之間的語句 如果沒有異常發生,忽略 except 子句,...

C 異常學習筆記

vc 中的異常捕獲的規則 可以捕獲的異常有以下三種情況 1.必須嚴格遵守匹配資料型別 2.異常處理的資料型別是公有類,拋擲的異常的資料型別是派生類。3.異常處理的資料型別是指向公有基類的指標,拋擲異常的資料型別是指向派生類的執針 對於派生層次結構的異常處理,catch 塊組的順序是重要的。因為 ca...