C 異常學習筆記

2021-04-09 04:23:04 字數 1069 閱讀 9094

vc

中的異常捕獲的規則

可以捕獲的異常有以下三種情況: 1.

必須嚴格遵守匹配資料型別 2.

異常處理的資料型別是公有類,拋擲的異常的資料型別是派生類。 3.

異常處理的資料型別是指向公有基類的指標,拋擲異常的資料型別是指向派生類的執針

對於派生層次結構的異常處理,

catch

塊組的順序是重要的。因為

catch

基類總能捕獲

throw

派生類物件。所以

catch

基類塊放在派生類快的後面。

使用異常的方法

可以把多個異常組成族系。把

c++**中的異常組在一起由兩種方式: 4.

列舉族系

enum fileerrors(non***ist,wrongformat,diskseekerror,…);

int f()

catch(fileerrors fe)

}

}

5.按照異常派生層次結構

class fileerrors{};

class nonexist :public fileerrors{};

class wrongformat :public fileerrors{};

int f()

catch(nonexist)

catch(wrongformat)

}

6.跟在

catch

之後的圓括號中必須含有資料型別,捕獲是利用資料型別匹配實現的。如果乙個函式拋擲乙個異常,但在通往異常處理函式的呼叫鏈中找不到與之相匹配的

catch

,則程式通常以

abort()

函式呼叫結束。 7.

嚴格遵守匹配資料型別捕獲異常示例

throw 10;

會被catch (int)捕獲

throw 「abc」;

會被catch(char* ptr)捕獲

throw string(「def」);

被catch(string s)

捕獲  

c 異常學習筆記

1.捕獲異常 try catch結構 2.收尾工作 try catch finally結構 3.丟擲異常 throw語句 try catch finally結構 class program denominator,result catch dividebyzeroexception e 分母為0的異...

C 學習筆記之異常

程式執行中需要處理異常 異常處理方法一 異常處理方法二 c 異常處理機制 異常處理基礎 例子1 除數為零的異常處理 ex17 1.cpp 除數為零的異常例子 include include using namespace std 定義異常類myexception class myexception ...

C 學習筆記 (19)異常

為什麼要進行異常處理 如果沒有異常處理,當出現問題時,作業系統會直接將程式終止,處理方式不太友好。因此需要更友好一些的方式來處理異常。例如如下 static void main string args catch finally 將 放到try中進行執行,如果出現異常首先到catch中尋找可以解決的...