如何將物件用做異常型別

2021-06-20 14:29:17 字數 1116 閱讀 4617

通常,引發異常的函式將傳遞乙個物件。這樣做的重要優點之一是,可以使不同的異常型別來區分不同的函式在不同情況下引發的異常。另外,物件可以攜帶資訊,coders可以根據這些資訊來確定引發異常的原因。同時,catch塊可以根據這些資訊來決定採取什麼樣的措施。

示例**如下:

// exception_class.cpp : 定義控制台應用程式的入口點。

//using exception classses

#include "stdafx.h"

#include #include //or math.h, unix users may need

#include "exc_mean.h"

//function prototypes(函式原型)

double hmean(double a, double b);

double gmean(double a, double b);

int _tmain(int argc, _tchar* argv)

catch (bad_hmean &bg)

catch (bad_gmean &hg)

}cout << "bye!\n";

cin.get();

cin.get();

return 0;

}double hmean(double a, double b)

double gmean(double a, double b)

//exc_mean.h --exception classses for hmean(), gmean()

#include class bad_hmean //第乙個異常返回類定義

void mesg();

};inline void bad_hmean::mesg()

class bad_gmean //第二格異常返回類

const char * mesg();

};inline const char * bad_gmean::mesg()

執行效果如圖:

C primer 十八 將物件用作異常型別

通常,引發異常的函式將傳遞乙個物件。這樣做的重要優點之一是,可以使用不同的異常型別來區分不同的函式在同情況下引發的異常。另外,物件可以攜帶資訊,程式設計師可以根據這些資訊來確定引發異常的原因。同時,catch塊可以根據這些資訊來決定採取什麼樣的措施。例如,下面是針對函式hmean引發的異常而提供的一...

C 如何將物件陣列轉換成DataSet

在使用asp.net 2.0 beta 2 開發專案的過程中,碰到了將物件陣列繫結到gridview的資料來源上,但是使用排序的時候,卻發現gridview並不提供對物件陣列的支援,而在微軟的官方 上我們可以看到gridview的排序只有當資料來源是dataset的時候才支援,所以對於某些採用了o ...

未將物件引用設定到物件的例項 異常的原因

1 viewstate 物件為null。2 dateset 空。3 sql語句或datebase的原因導致datareader空。4 宣告字串變數時未賦空值就應用變數。5 未用new初始化物件。6 session物件為空。7 對控制項賦文字值時,值不存在 8 使用request.querystrin...