- ios[meta header]
- std[meta namespace]
- basic_ios[meta class]
- function[meta id-type]
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()[color ff0000]
- std::ios_base[link ../ios_base.md]
- failbit[link ../ios_base/type-iostate.md]
- badbit[link ../ios_base/type-iostate.md]
- failure[link ../ios_base/failure.md]
- what[link ../ios_base/failure/what.md]
- rdstate[link rdstate.md]
exceptions = 0
rdstate = 1
exceptions = 5
rdstate = 1
ios_base::clear: unspecified iostream_category error
end
- C++98
- 状態値の書き込み
- 状態値の読み取り