c++異常
assert ()斷言,為真繼續,為假終止。
異常處理更為高級,可處理相應異常。
C++的異常處理引入了三個關鍵字 try(檢測異常)、throw(拋出異常)、catch(捕獲異常)。
try 負責監視可能出現異常的程序段。若該段出現異常,程序將不再按原有流程走,而是被throw拋出異常,程序控製權交給catch子句,然後從catch塊處順序執行。
try 與 catch 語句塊必須緊連。
異常處理機製可以將正常語句與異常處理語句分開表示,使邏輯結構更清晰。
異常處理流程:
1.執行try{}塊中的語句。
2.若沒有引起異常,則跳過catch塊繼續執行。
3.若引起異常,並由throw拋出,則進入catch塊。
4.若未找到區配異常的catch塊,程序自動調用係統函數terminate()結束自己。
調試時會輸出異常,而正式運行時卻不會執行catch{}裏麵的語句,暫時不懂。
異常中斷了程序的正常流程,所以異常涉及到的對象可能為無效狀態。那些在異常發生期間正確執行了“清理”工作的代碼被稱作是異常安全的。
例一:
例二:
stdexcept頭文件定義了常見的異常類,runtime_error是其中一個,what()是它的成員函數,返回創建異常對象時的字符串參數。
最後更新:2017-04-03 12:55:52