第九章 習題

2021-08-21 02:22:23 字數 3145 閱讀 9216

(1)執行異常,可以預料,但不能避免,它是由系統執行環境造成的。

(2)在小型程式開發中,一旦發生異常所採取的方法一般是將程式立即中斷執行,從而無條件釋放所有資源 。

(3)c++的異常處理機制使得異常的引發和處理不必在同一函式中。

(4)如果預料某段程式(成對某個函式的呼叫)有可能發生異常,就將它放在try語句塊中。

(5)如果某段程式中發現了自己不能處理的異常,就可以使用throw《表示式》拋擲這個異常,其中的《表示式》表示異常型別

(6)如果異常型別宣告是乙個省略號(….),catch子句便處理任何型別的異常,這段處理程式必須是catch塊的最後一段處理程式。

(7)異常介面宣告也稱為丟擲列表,已經成為函式介面的一部分。

(8)函式原型的丟擲列表是乙個空表,表示該函式不丟擲任何型別的異常。

(9)為了使用異常類,需要包含相應的標頭檔案。其中,異常基礎類exception定義於< exception >中,bad_ alloc定義於new中,其他異常類定義於< stdexcept >中。

(10)在異常處理程式中發現異常,可以在catch語句中用throw語句丟擲。

(1)處理異常用到3個保留字,除了try外,還有(ac)。

a. catch b. class c. throw d. return

(2) catch.-.)般放在其他catch子句的後面,該子句的作用是(b)。

a.拋擲異常 b.捕獲所有型別的異常

c.檢測並處理異常 d.有語法錯誤

(3)關於異常的描述中,錯誤的是(d)。

a.異常既可以被硬體引發,又可以被軟體引發

b.執行異常可以預料,但不能避免,它是由系統執行環境造成的

c.異常是指從發生問題的**區域傳遞到處理問題的**區域的乙個物件

d.在程式執行中,一旦發生異常,程式立即中斷執行

(4)下列說法中錯誤的是(cd)。

a.引發異常後,首先在引發異常的函式內部尋找異常處理過程

b. 丟擲異常是沒有任何危險的

c.「丟擲異常」和「捕捉異常」兩種操作最好放在同乙個函式中

d.異常處理過程在處理完異常後,可以通過帶有引數的throw繼續傳播異常

(1) try與catch總是結合使用的。 (

(2)乙個異常可以是除類以外的任何型別。 (

(3)丟擲異常後一定要馬上終止程式。 (

(4)異常介面定義的異常參數列為空,表示可以引發任何型別的異常。 (

(5)c++標準庫中不需要異常類,因為c++標準庫中很少發生異常。 (

(6)異常處理程式捕獲到異常後,必須馬上處理。 (

(7)乙個異常只能在catch語句中再用throw語句丟擲。 (

(8)當catch子句的異常型別宣告引數被初始化後,將從對應的try塊開始到異常被拋那處之間構造(且尚未析構)的所有自動物件進行析構。 (

(1)什麼叫異常處理?

異常處理是一種程式定義的錯誤,它對程式的邏輯錯誤進行設防,並對執行異常加以控制。在c++中,異常處理是對所能預料的執行錯誤進行處理的一套實現機制。

(2)c++的異常處理機制有何優點?

c++的異常處理機制使得異常的引發和處理不必在同一函式中。c++異常處理的目的是在異常發生時,盡可能地減小破壞,周密地善後,而不影響其他部分程式的執行。這樣底層的函式可以著重解決具體問題,而不必過多地考慮對異常的處理。上層呼叫者可以在適當的位置設計對不同型別異常的處理,這在大型程式中是非常必要的。

#include

using

namespace

std;

class nomilk

;

int main()

catch(nomilk e)

nomilk::nomilk()

{}

nomilk::nomilk(int how_many):count(how_many)

{}

int nomilk::get_money()

寫出當分別輸人 4 2和 4 0 兩組數後的輸出結果。

從健盤上輸人x的值,並計算y =ln(2x+ 1)的值,要求用異常處理「負數求對數」的情況。

//xt9_1.cpp  

#include

#include

using

namespace

std;

class cln

; int main()

cln::cln(double x): y(x)

{}

double cln::get_y()

執行結果:

第九章 習題

一 填空題 1 執行異常,可以 預料 但不能避免,它是由 系統執行環境 造成的。2 在小型程式開發中,一旦發生異常所採取的方法一般是 將程式立即中斷執行,從而無條件釋放所有資源 3 c 的異常處理機制使得異常的引發和處理 不必 在同一函式中。4 如果預料某段程式 成對某個函式的呼叫 有可能發生異常,...

第九章 習題

一 填空題 1 執行異常,可以 預料 但不能避免,它是由 系統執行環境 造成的。2 在小型程式開發中,一旦發生異常所採取的方法一般是 將程式立即中斷執行 3 c 的異常處理機制使得異常的引發和處理 不必 在同一函式中。4 如果預料某段程式 成對某個函式的呼叫 有可能發生異常,就將它放在 try語句塊...

第九章(筆記)

轉移指令是可以修改ip,或同時修改cs和ip的指令 offset 是用於提取標號偏移位址的操作符 jmp在第2章裡說到時用於修改ip或同時修改cs和ip的轉移指令,這章裡單獨的jmp指令是乙個無條件的轉移指令 jmp short 標號 是實現段內短轉移 jmp near ptr 標號 是實現段內近轉...