try語句塊和異常處理

2022-08-24 09:21:12 字數 1552 閱讀 3768

在c++中,異常處理包括:

· throw表示式(throw expression)異常檢測部分使用throw表示式來表示它遇到了無法處理的問題。throw表示式丟擲乙個異常並把控制權轉移到能處理該異常的最近的catch子句。

· try語句塊(try block)異常處理部分使用try語句塊處理異常。try關鍵字後跟著乙個塊和多個catch子句。如果try語句塊的**throw了異常並且其中乙個catch子句匹配該異常型別,則異常被該catch子句處理,否則,異常將由外圍try(try語句塊可以呼叫包含另乙個try語句塊的函式)  

處理,或者呼叫標準庫的terminate函式終止當前程式。

·一套異常類(exception class)用於在throw表示式和相關的catch子句之間傳遞異常的具體資訊。

if(a !=b)

throw runtime_error("

data must refer to same value

");

上面的**就是如果a和b不相等時,就丟擲乙個異常,該異常是型別runtime_error的物件。丟擲異常將終止當前的函式,並把控制權轉移給能處理該異常的**。

int

a, b;

while(cin >> a >>b)

catch

(runtime_error err)

}

上面的**中,try語句塊中如果判斷a與b不相等,就丟擲乙個runtime_error型別的異常,try語句塊後有乙個與之相對應的catch語句,那麼就會執行該catch語句來處理異常。

what函式返回值是乙個指向c風格字串的const char*。what函式返回的c風格字串的內容與異常物件的型別有關。如果異常型別有乙個字串初始值,則what返回該字串。對於其他吳初始值的異常型別來說,what返回的內容由編譯器決定。

關於標準異常

c++標準庫定義了一組類,用於報告標準庫函式遇到的問題。這些異常類也可以在使用者編寫的程式中使用,它們分別定義在4個頭檔案中:

·exception標頭檔案定義了最通用的異常類exception。它只報告異常的發生,不提供任何額外資訊。

·stdexcept標頭檔案定義了幾種常用的異常類。

·new標頭檔案定義了bad_alloc異常型別。

·type_info標頭檔案定義了bad_cast異常型別。

以上摘自qingdujun的部落格:

try語句塊和異常處理

今晚看了一下c primer 的異常處理的簡單介紹,在這裡簡略記一下 異常處理機制包括異常檢測和異常處理 在c 中異常處理主要包括 throw表示式 用 throw 表示式來丟擲 引發 異常 那自然有接收 try語句塊 包含catch子句 用try語句塊來表示這段 可能會丟擲異常,丟擲的異常通常會被...

try塊和異常處理

try塊和異常處理 c 的異常處理中包括 1 throw表示式,錯誤檢測部分使用這種表示式來說明遇到了不可處理的錯誤。可以說,throw引發了異常條件。2 try塊,錯誤處理部分使用它來處理異常。try語句塊以try關鍵字開始,並以乙個或多個catch子句結束。在try塊中執行的 所丟擲的異常,通常...

(30)try語句塊和異常處理

異常是指存在於執行時的反常行為,這些行為超出了函式正常功能的範圍。當程式的某部分檢測到乙個它無法處理的問題時,需要用到異常處理。異常處理機制為程式中異常檢測和異常處理這兩部分的協作提供支援。在c 語言中,異常處理包括 一.throw表示式,異常檢測部分使用throw表示式來表示它遇到了無法處理的問題...