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;
}