1.異常被丟擲後,從進入try塊起,到異常被拋擲前,這期間在棧上的構造的所有物件,都會被自動析構。析構的順序與構造的順序相反。這一過程稱為棧的解旋(unwinding)。測試程式如下:
#include using namespace std;
class test
~test()
private:
int a;
int b;
};void mydivide()
void main()
catch (int a)
catch (...)
cout << "hello..." << endl;
system("pause");
return;
}
執行結果:
2.異常介面宣告
1)為了加強程式的可讀性,可以在函式宣告中列出可能丟擲的所有異常型別,例如:
void func() throw (a, b, c , d); //這個函式func()能夠且只能丟擲型別a b c d及其子型別的異常。
2)如果在函式宣告中沒有包含異常介面宣告,則此函式可以拋擲任何型別的異常,例如:
void func();
3)乙個不拋擲任何型別異常的函式可以宣告為:
void func() throw();
4) 如果乙個函式丟擲了它的異常介面宣告所不允許丟擲的異常,unexpected函式會被呼叫,該函式預設行為呼叫terminate函式中止程式。
C 基礎程式設計DAY10
寫乙個函式,將乙個整數的各位數字的反序列印 include include using namespace std int reverse out int n cout endl return 0 void show int n int main 1 函式show 採用遞迴求解,if n 10 co...
刻意練習Python基礎 day 10 異常處理
錯誤型別 說明assertionerror 斷言語句失敗 attributeerror 物件沒有這個屬性 indexerror 序列中沒有此索引 index indentationerror 縮排錯誤 importerror 匯入模組 物件失敗 nameerror 未宣告 初始化物件 沒有屬性 os...
閉關日記 Day10
小雨。我想想怎麼寫,先挖坑。d 確認4.1 考科目三,估計過幾天要開始練車了。晚上去工作室敲 剛好看到他們在筆試,明天就是我筆試了,祝一切順利 專案f的電鋸聲識別,開始用比較勉強的方式實現,算是折衷吧,迫於時間,暫時如此,精準的識別想來是我目前做不出來的,如果畢設做這個,倒是也可以好好研究一些聲音方...