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中尋找可以解決的...