如何清除异常掩码
How to clear exception mask
为文件创建异常掩码时,如果在文件操作期间引发异常,我可以使用ios::clear()
重置实际文件的状态位。
尽管这样做之后,异常掩码是否仍然会抛出异常,认为指定的错误状态标志仍然设置为true?如果是,我如何重置异常掩码,以便在未来出现适当情况时准备抛出更多异常?
ios::exceptions
的文档中没有说明异常掩码在指定的错误状态标志之一熄灭后将/不会继续抛出异常。
总体问题是:如果异常掩码引发异常,然后通过使用ios::clear
清除相关文件的错误状态标志,则例外掩码
异常掩码不抛出异常。抛出异常是指如果在修改之后,在与异常掩码中的设置位相对应的状态中至少有一个设置位,则修改流的状态的所有操作。
因此,如果使用clear
的方式设置了异常掩码中存在的一个位,则会抛出异常。
相关文章:
- 位移操作和位掩码未检测到重复字符
- OpenCV - 带有掩码的absdiff
- 生成前缀位掩码
- 如何从__m64值的 lsb 创建 8 位掩码?
- 如何对无符号长 int 进行位掩码?
- 删除K的背景掩码-意味着Python或C++中的集群/
- 如何在C++中优雅地处理位掩码
- 将uint64_t位掩码转换为 std::布尔数组
- 使输入二进制掩码适应 ITK 网格生成器
- 如何从 getifaddr 读取子网掩码
- 优化从子位掩码生成父位掩码
- 基于模式创建位掩码作为 constexpr
- 使用二进制掩码 C++ ITK 获取感兴趣区域
- C++中的运行时位复制(位掩码)
- 根据 IP 和掩码C++打印所有 IP
- C++设置"blank"或重置 ifstrean (ios) 的异常掩码
- 为什么 getline() 在异常掩码未设置为 eofbit 时抛出'std::ios_base::failure'?
- C#的C++ifstream异常掩码
- 如何清除异常掩码
- Istream异常掩码和处理