通常,引發異常的函式將傳遞乙個物件。這樣做的重要優點之一是,可以使不同的異常型別來區分不同的函式在不同情況下引發的異常。另外,物件可以攜帶資訊,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...