它用于獲取/設(shè)置異常掩碼。異常掩碼是所有流對象保存的內(nèi)部值,指定為哪些狀態(tài)標(biāo)志設(shè)置時(shí)拋出成員類型失?。ɑ蚰承┡缮愋停┑漠惓!?/p>
以下是ios::exceptions函數(shù)的聲明。
get (1) iostate exceptions() const;
set (2) void exceptions (iostate except);
上述第一種形式(1)返回流的當(dāng)前異常掩碼。
上面的第二種形式(2)為流設(shè)置一個(gè)新的異常掩碼,并清除流的錯(cuò)誤狀態(tài)標(biāo)志(好像調(diào)用了成員clear())。
except ? 設(shè)置錯(cuò)誤狀態(tài)標(biāo)志位(badbit,eofbit和/或failbit)的組合形成的成員類型iostate的位掩碼值,或者設(shè)置為goodbit(或零)。iostate的位掩碼。下面的例子演示了ios::fill函數(shù)。
#include <iostream>
#include <fstream>
int main () {
std::ifstream file;
file.exceptions ( std::ifstream::failbit | std::ifstream::badbit );
try {
file.open ("test.txt");
while (!file.eof()) file.get();
file.close();
}
catch (std::ifstream::failure e) {
std::cerr << "Exception opening/reading/closing file/n";
}
return 0;
}