C 異常處理

2021-09-30 07:36:37 字數 1246 閱讀 1727

6.1基礎

try-throw-catch

的基本用法如下**段,也即

thorw

什麼型別的異常,就捕捉到什麼型別的異常,並進行什麼型別的處理。注意,

catch

是要按順序排列的,某一型別異常派生自另一型別異常,則另一型別異常一定要放在前者後面,否則異常不會被前者處理。

int i = 0;

cin >> i ;

trybreak;

case 2:

break;

case 3:

break;

default:

break; }

}catch(int)

catch(double)

catch(char)

當catch(…)

表示處理任何錯誤。

6.2catch

塊的觸發

try

catch(h)

當以下情況會觸發catch塊:1)e

與h是相同型別。2)h

是e公共基類,也即e是直接public繼承或是間接public繼承h。

直接public繼承:

class base;

class a:public base;

則a直接public繼承base。

間接public繼承:

class base;

class a:public base;

class aa:public a;

則aa間接public繼承。3)h

、e是指標型別,且1)、2)對它們所引用的型別成立。4)h

、e是引用型別,且1)、2)對它們所引用的型別成立。(《c++ programming language》中原意是「h是引用型別,且1)、2)對它們所引用的型別成立」,經測試,發覺此話有誤。

6.3重新丟擲異常

在catch塊中throw乙個不帶引數的異常出來,重新丟擲的就是原來捕捉的那個異常。

6.4資源管理的異常

一些操作,諸如檔案操作,在檔案open後close前如有異常也可捕捉進行處理。

6.5建構函式裡的異常與初始化器的異常

**可以分別如下:

classa::classa()

catch(s)

}classa::classa()

try

}catch(s)

參考:《c++ programming language》特別版。

C 異常處理

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

c 異常處理

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

C 異常處理

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