天天看點

c++異常

assert ()斷言,為真繼續,為假終止。

異常處理更為進階,可處理相應異常。

c++的異常處理引入了三個關鍵字 try(檢測異常)、throw(抛出異常)、catch(捕獲異常)。

try 負責監視可能出現異常的程式段。若該段出現異常,程式将不再按原有流程走,而是被throw抛出異常,程式控制權交給catch子句,然後從catch塊處順序執行。

try 與 catch 語句塊必須緊連。

異常處理機制可以将正常語句與異常處理語句分開表示,使邏輯結構更清晰。

異常處理流程:

1.執行try{}塊中的語句。

2.若沒有引起異常,則跳過catch塊繼續執行。

3.若引起異常,并由throw抛出,則進入catch塊。

4.若未找到區配異常的catch塊,程式自動調用系統函數terminate()結束自己。

調試時會輸出異常,而正式運作時卻不會執行catch{}裡面的語句,暫時不懂。

異常中斷了程式的正常流程,是以異常涉及到的對象可能為無效狀态。那些在異常發生期間正确執行了“清理”工作的代碼被稱作是異常安全的。

c++異常

stdexcept頭檔案定義了常見的異常類,runtime_error是其中一個,what()是它的成員函數,傳回建立異常對象時的字元串參數。

上一篇: 隊列

繼續閱讀