ios::exceptions()函式


它用於獲取/設定異常掩碼。異常掩碼是所有流物件儲存的內部值,指定為哪些狀態標誌設定時丟擲成員型別失敗(或某些派生型別)的異常。

宣告

以下是ios::exceptions函式的宣告。

get (1)    iostate exceptions() const;
set (2)    void exceptions (iostate except);

上述第一種形式(1)返回流的當前異常掩碼。
上面的第二種形式(2)為流設定一個新的異常掩碼,並清除流的錯誤狀態標誌(好像呼叫了成員clear())。

引數

  • except ? 設定錯誤狀態標誌位(badbiteofbit和/或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;
}