為什麼要進行異常處理
如果沒有異常處理,當出現問題時,作業系統會直接將程式終止,處理方式不太友好。因此需要更友好一些的方式來處理異常。
例如如下**:
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和finallyusing 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...