二十一天學通C 之使用throw丟擲異常

2021-04-24 07:26:32 字數 1095 閱讀 6672

使用throw丟擲異常

本人節選自《21天學通c++》一書

丟擲異常(也稱為拋棄異常)即檢測是否產生異常,在c++中,其採用throw語句來實現,如果檢測到產生異常,則丟擲異常。該語句的格式為:

throw 表示式;

如果在try語句塊的程式段中(包括在其中呼叫的函式)發現了異常,且拋棄了該異常,則這個異常就可以被try語句塊後的某個catch語句所捕獲並處理,捕獲和處理的條件是被拋棄的異常的型別與catch語句的異常型別相匹配。由於c++使用資料型別來區分不同的異常,因此在判斷異常時,throw語句中的表示式的值就沒有實際意義,而表示式的型別就特別重要。

【範例20-2】處理除數為0的異常。該範例將上述除數為0的異常可以用try/catch語句來捕獲異常,並使用throw語句來丟擲異常,從而實現異常處理,實現**如**清單20-2所示。

**清單20-2

1    #include//包含標頭檔案

2    #include

3    double fuc(double x, double y)                        //定義函式

4    

9        return x/y;                                    //否則返回兩個數的商

10    }

11    void main()

12    

20        catch(double)                                    //捕獲並處理異常

21        

25    }

【執行結果】在visual c++中新建乙個【c++ source file】檔案,輸入上述的**,編譯無誤後執行。

【範例解析】上述**中,在主函式main()的第14~19行中使用了try語句定義異常,其中包含3條有可能出現異常的語句,它們為呼叫兩個數相除的函式。在**的第20~24行定義了異常處理,即捕獲異常後執行該段**中的語句。此外,在函式fuc()的**5~8行通過throw語句丟擲異常。

注意:一般來說,throw語句通常與try- catch或try-finally語句一起使用,可以使用throw語句顯式引發異常。

二十一天學通C 之使用throw丟擲異常

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!使用throw丟擲異常 本人節選自 21天學通c 一書 丟擲異常 也稱為拋棄異常 即檢測是否產生異常,在c 中,其採用throw語句來實現,如果檢測到產生異常,則丟擲異常。該語句的格式為 throw 表示式 如果在try語句塊的程式段中 包括在其中...

二十一天學通C 之異常處理機制

異常處理機制 本人節選自 21天學通c 一書 c 並不是第乙個對結構化執行期錯誤處理進行支援的語言。早在20世紀60年代,pl 1就提供了一種內建的異常處理機制 ada也在20世紀80年代提供了自己的異常處理,而c 是在1989年時才有了異常處理機制。但是,c 的異常處理是獨一無二的,並且其已經作為...

二十一天學通C語言 函式型指標

二十一天學通c語言 函式型指標 本文節選自 21天學通c語言 一書 c程式中的函式也都是存放在 區內的,它們同樣也是有位址的。那麼如何取得函式的位址呢?在前面也說過函式定義的時候實際上是定義了乙個函式變數,那麼是否可以將函式變數賦值給其他變數呢?回答這些問題需要涉及另外乙個概念 函式型指標。按照已有...