Essential C 第7章 異常處理

2021-10-01 08:08:05 字數 951 閱讀 6142

第7章 異常處理

7.1 丟擲異常

異常處理機制有兩個主要部分:異常的鑑定與發出,異常的處理。

c++通過throw表示式產生異常:

inline void triangular_iteratir::

check_integrity()

throw表示式看起來有點像函式呼叫。

所謂 異常,是某種物件,最簡單的異常物件可以是整數或字串。

throw 42;

throw 「no buffer」;

7.2 捕獲異常

使用單條或一串catch子句來捕獲被丟擲的異常物件。

catch子句由3部分組成:關鍵字catch、小括號內的乙個型別或物件、大括號的一組語句(用來處理異常)。

如:catch(int errno)

catch(iterator_overflow &iof)

異常物件的型別會逐一和每個catch子句進行對比。型別符合則執行catch子句。

如果我們無法完成異常的完整處理,在記錄資訊之外,或許需要重新丟擲(throw),,尋求其他catch的協助。

如果我們想捕獲任何型別的異常,可以使用catch all方式catch(…)

catch(…)

7.3 提煉異常

catch子句和try塊相應而生。 try塊是以try開始,然後大括號一串語句,catch子句放在try塊末尾。如果try塊內發生異常,則由接下來的catch子句處理。

7.4 區域性資源管理

auto_ptr是標準庫提供的class template,它會自動刪除通過new分配的物件。

7.5 標準異常

如果new無法分配足夠的記憶體,它會丟擲bad_alloc異常物件。

標準庫定義了一套異常類體系,其根部是名為exception的抽象基類。exception宣告有乙個what()虛函式,會返回乙個const char*。用以表示被丟擲異常的文字描述。

第7章 自動丟擲異常的應用

public class systemexceptiontest public static void main string args 1.知識點分析 1 自動丟擲異常 由系統自動丟擲的異常稱為自動丟擲異常,即一旦出現某些執行錯誤時,系統將會為這些錯誤自動產生對應的異常類物件。2 對程式的分析 以...

第7章 Spring MVC的高階技術 異常處理

概述 只要程式都需要處理異常,spring會有哪些處理異常的方式 特定的spring異常將會自動對映為指定的http狀態碼異常上可以新增 responsestatus註解,從而改變http狀態碼在控制器中新增乙個帶有 exceptionhandler註解可以處理這個控制器所有丟擲此異常的 對於自動對...

第7章 函式 7

7.7 類的成員函式 函式原型必須在類中定義。但是,函式體則既可以在類中也可以在類外定義。7.7.1 定義成員函式的函式體 類的所有成員都必須在類定義的花括號裡面宣告,此後,就不能再為類增加任何成員。類的成員函式必須加宣告的一般定義。類的成員函式既可以在類的定義內也可以在類的定義外定義。編譯器隱式地...