C 異常處理

2021-08-17 18:08:47 字數 1155 閱讀 1493

const throw() 不是函式,這個東西叫異常規格說明,表示 what 函式可以丟擲異常的型別,型別說明放到 () 裡,這裡面沒有型別,就是宣告這個函式不丟擲異常,通常函式不寫後面的就表示函式可以丟擲任何型別的異常。

異常規格說明

1、異常規格說明的目的是為了讓函式使用者知道該函式可能丟擲的異常有哪些。

可以在函式的宣告中列出這個函式可能拋擲的所有異常型別。例如:

void

fun()

throw(a

,b,c

,d);

2、若無異常介面宣告,則此函式可以拋擲任何型別的異常。

3、不拋擲任何型別異常的函式宣告如下:

這是乙個非常好的例子,能看出異常怎樣構造、丟擲、和捕獲。還能看到基類和派生類之間的關係,欄位的初始化,建構函式析構函式的呼叫。謝謝菜鳥教程的wang xin-hai同學

#include #include using namespace std;

class myexception

myexception(const myexception &other) : message_(other.message_)

virtual ~myexception()

const char *what() const

private:

string message_;

};class myexceptiond : public myexception

myexceptiond(const myexceptiond &other)

: myexception(other)

~myexceptiond()

};void fun(int n) throw (int, myexception, myexceptiond)

else if (n == 2)

else if (n == 3)

}void fun2() throw()

int main(void)

catch (int n)

catch (myexceptiond &e)

catch (myexception &e)

return 0;

}

C 異常處理

結構化異常 structured exception vs c 異常 c exception 大家都知道c 異常是c 語言的乙個特性,使用者可以使用throw的方式來丟擲異常,try catch 來捕獲異常。結構化異常是諸如,zero divided,access violations等異常,這些異...

c 異常處理

一 概述 c 自身有著非常強的糾錯能力,發展到如今,已經建立了比較完善的異常處理機制。c 的異常情況無非兩種,一種是語法錯誤,即程式中出現了錯誤的語句,函式,結構和類,致使編譯程式無法進行。另一種是執行時發生的錯誤,一般與演算法有關。關於語法錯誤,不必多說,寫 時心細一點就可以解決。c 編譯器的報錯...

C 異常處理

程式設計師常常忽視異常處理的重要性,這給他們自己的 造成相當大損害。本文將討論如何在c 中使用異常處理,並介紹在應用 中新增 片段以防止某些錯誤的一些簡單方法,這些錯誤可能導致程式異常終止。結構化異常處理 net框架提供一種標準的錯誤報告機制稱為結構化異常處理。這種機制依賴於應用中報告錯誤的異常。在...