使用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程式中的函式也都是存放在 區內的,它們同樣也是有位址的。那麼如何取得函式的位址呢?在前面也說過函式定義的時候實際上是定義了乙個函式變數,那麼是否可以將函式變數賦值給其他變數呢?回答這些問題需要涉及另外乙個概念 函式型指標。按照已有...