最終更新日時: 2017年11月27日 14時01分15秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<ios>

# std::basic_ios::exceptions

    iostate exceptions() const;         // (1)

    void exceptions(iostate except);    // (2)

## 概要

例外マスク（特定の状態時に例外を投げる指定）の設定・取得を行う。

## 効果

- (1) -
- (2) 例外マスクを引数 `except` に設定する（`exceptions() == except` となる）。
  その後、`clear(rdstate())` を実行する（結果として、`ios_base::failure` 例外が送出される可能性がある）。

## 戻り値

- (1) 現在の例外マスク
- (2) なし

## 例

    #include <iostream>
    #include <cstddef>

    int main()
    {
      std::ios str(NULL);
      std::cout << "exceptions = " << str.exceptions() << '\n';
      std::cout << "rdstate = " << str.rdstate() << '\n';
      try {
        str.exceptions(std::ios_base::failbit | std::ios_base::badbit);
      } catch (std::ios_base::failure& e) {
        std::cout << "exceptions = " << str.exceptions() << '\n';
        std::cout << "rdstate = " << str.rdstate() << '\n';
        std::cout << e.what() << '\n';
      }
      std::cout << "end\n";
    }

### 出力例

    exceptions = 0
    rdstate = 1
    exceptions = 5
    rdstate = 1
    ios_base::clear: unspecified iostream_category error
    end

## バージョン

### 言語

- C++98

## 参照

- 状態値の書き込み
  - `setstate`
  - `clear`
- 状態値の読み取り
  - `rdstate`
  - `good`
  - `eof`
  - `fail`
  - `bad`
  - `operator bool`
  - `operator void*`
  - `operator!`