C++異常處理機制

大發註冊的邀請碼88886486發表於2021-02-14

C++為我們提供了一種結構化形式的,更為優雅的異常處理機制,這種結構化機制可以把程式中正常執行的程式碼和異常處理的部分分開表示,使程式變得更清晰易讀,更為優雅!

下面,來看異常處理的結構,共分兩部分:

try { //正常程式執行語句 throw (異常型別表示式); } catch(異常型別1) { //異常處理程式碼 } catch(異常型別2) { //異常處理程式碼 } catch(異常型別3) { //異常處理程式碼 } //後續程式碼 以上是C++中異常處理的程式碼形式,用到了try、throw、catch三個關鍵詞

程式碼在執行時,首先遇到try程式碼塊,作用就是啟動異常處理機制,檢測try程式碼執行中遇到的異常,然後通過throw進行丟擲,throw當中的異常型別表示式是常量或變數表示式。接下來會和後面的catch語句塊進行匹配(捕獲),然後執行對應的程式碼。如果沒有發現可以匹配的型別則,則繼續向下執行。如若未找到匹配,則自動呼叫terminate()結束函式,預設功能是abort()終止程式

下面舉一個除法運算時,除數為0時候的一個異常處理

include

using namespace std; int main() { int a,b; cin>>a>>b; try { if(b==0) throw "error! b<0"; } catch(const char *str) { cout<

可以看到,在try中,如果發現b為0會丟擲一個字串,那麼此時會進入catch匹配,很明顯將匹配第一個catch,進而輸出str的值,請大家自行理解!

相關文章