異常是一種處理錯誤的方式。
例如:乙個函式發現自己無法處理的錯誤時就可以丟擲異常,讓別的函式直接或間接的呼叫處理這個錯誤。
通常將有可能出現異常的**放在try{}程式塊中,將異常處理的語句放在catch{}程式塊中,但是捕獲與處理的條件是,丟擲的異常的型別與catch塊引數的型別匹配。
注意並不是使用了try來包含可能出現異常的**後,程式就不會崩潰,通常需要(1)滿足某個條件時顯示丟擲異常(2)使用catch來匹配丟擲異常型別。
try
catch
(型別名[引數名]
)catch
(型別名[引數名]
)
int
func2()
void
func1()
intmain()
catch
(const
char
* errmsg)
//異常處理函式
system
("pause");
return0;
}
異常處理的順序
丟擲異常是由程式設計師決定什麼是異常,是否丟擲異常,以及丟擲哪種異常。
萬能捕獲異常catch(…),類似於一種「保底」做法。防止出現異常沒有匹配的catch塊,導致程式的退出,一般是將catch(…)放在catch塊的末尾。
try
catch(.
..)
異常的規範
有可能單個catch不能完全處理乙個異常,則希望再交給外層呼叫函式進行處理,則需要將異常重新丟擲。
類中異常的丟擲
class
func1
;class
func2
:public func1
;class
func3
:public func1
;int
main()
catch
(const func1& f)
return0;
}
C 異常處理
結構化異常 structured exception vs c 異常 c exception 大家都知道c 異常是c 語言的乙個特性,使用者可以使用throw的方式來丟擲異常,try catch 來捕獲異常。結構化異常是諸如,zero divided,access violations等異常,這些異...
c 異常處理
一 概述 c 自身有著非常強的糾錯能力,發展到如今,已經建立了比較完善的異常處理機制。c 的異常情況無非兩種,一種是語法錯誤,即程式中出現了錯誤的語句,函式,結構和類,致使編譯程式無法進行。另一種是執行時發生的錯誤,一般與演算法有關。關於語法錯誤,不必多說,寫 時心細一點就可以解決。c 編譯器的報錯...
C 異常處理
程式設計師常常忽視異常處理的重要性,這給他們自己的 造成相當大損害。本文將討論如何在c 中使用異常處理,並介紹在應用 中新增 片段以防止某些錯誤的一些簡單方法,這些錯誤可能導致程式異常終止。結構化異常處理 net框架提供一種標準的錯誤報告機制稱為結構化異常處理。這種機制依賴於應用中報告錯誤的異常。在...