它用於獲取/設定異常掩碼。異常掩碼是所有流物件儲存的內部值,指定為哪些狀態標誌設定時丟擲成員型別失敗(或某些派生型別)的異常。
以下是ios::exceptions
函式的宣告。
get (1) iostate exceptions() const;
set (2) void exceptions (iostate except);
上述第一種形式(1)返回流的當前異常掩碼。
上面的第二種形式(2)為流設定一個新的異常掩碼,並清除流的錯誤狀態標誌(好像呼叫了成員clear()
)。
except
? 設定錯誤狀態標誌位(badbit
,eofbit
和/或failbit
)的組合形成的成員型別iostate
的位掩碼值,或者設定為goodbit
(或零)。iostate
的位掩碼。下面的例子演示了ios::fill
函式。
#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;
}