throw表示式是用在try塊中的。它用於丟擲錯誤資訊。throw丟擲的錯誤資訊被下面的catch函式接受,並且通過runtime_error類的成員函式what()返回throw關鍵字丟擲的錯誤資訊。下面是源程式。
sales_item.h
#ifndef _sales_item_
#define _sales_item_
#include #include using std::string;
using std::istream;
class sales_item
//this is not very clear
friend istream& operator >>(istream& in, sales_item& s)
private:
string isbn;
};#endif
main.cpp
#include #include #include "sales_item.h"
using std::runtime_error;
using std::cin;
using std::cout;
using std::endl;
using std::cerr;
int main()
catch (runtime_error err)
}cout << "the program will be stop! ";
getchar();
getchar();
return 0;
}
2023年8月18日 對try塊和throw表示式的用法的補充。
try塊和throw表示式並不是非要一起成對使用的。throw表示式丟擲的錯誤資訊可以被try塊中的catch語句接住並且通過what()成員函式輸出throw輸出的錯誤資訊。但是,如果沒有throw表示式catch語句就什麼都接不到麼?不是這樣的。throw表示式是一種允許程式設計師自定義錯誤資訊的表示式。系統同樣還定義了一組標準異常。這些標準異常定義在exception等標頭檔案中。也就是說,如果包含了相應的標頭檔案而且在try語句中出現了同檔案中定義的錯誤,那麼catch語句就能接受到相應的錯誤資訊。這類標頭檔案包括:exception,stdexcept,new,type_info。這四種標頭檔案的用法絕大多數我沒有進行試驗。只有stdexcept標頭檔案中的overflow_error類做過實驗。其他標準異常類的實驗如果有機會再補充。關於overflow_error異常類的實驗見下面的程式。
#include //stdexcept標頭檔案中定義了overflow_error類
#include #include //cstdlib標頭檔案中定義了exit_success
#include using std::overflow_error; //由於overflow_error不是系統關鍵字,所以一定要寫using宣告
using std::bitset;
using std::cout;
using std::endl;
int main()
catch (overflow_error err)
getchar();
return exit_success;
}
下圖是上面程式在64位windows7旗艦版microsoft visual c++ 2010學習版上執行的結果。
cronExpression表示式解釋
0 0 12 在每天中午12 00觸發 0 15 10 每天上午10 15 觸發 0 15 10 每天上午10 15 觸發 0 15 10 每天上午10 15 觸發 0 15 10 2005 在2005年中的每天上午10 15 觸發 0 14 每天在下午2 00至2 59之間每分鐘觸發一次 0 0 ...
cron表示式解釋
cron表示式通過特定的規則指定時間,用於定時任務,本文簡單記錄它的部分語法和例項,並不完全,能覆蓋日常大部分需求。1.整體結構 cron表示式是乙個字串,分為6或7個域,每兩個域之間用空格分隔,其語法格式為 秒域 分域 時域 日域 月域 周域 年域 其中,年域可以省略,省略時表示每年。2.各字段的...
賦值表示式和逗號表示式
c 把賦值運算子連線而成的式子叫做賦值表示式,例如 a b a b c a 3 等。賦值運算子是乙個雙目運算子,必須兩個參與運算的值,其左邊的值叫做 l value 通常是變數或賦值表示式,常量和常變數不可以作為賦值表示式的左值。賦值運算子右端的值叫做 r value 通常乙個常量 變數或表示式。c...