如何清除异常掩码

How to clear exception mask

本文关键字:异常 掩码 清除 何清除      更新时间:2023-10-16

为文件创建异常掩码时,如果在文件操作期间引发异常,我可以使用ios::clear()重置实际文件的状态位。

尽管这样做之后,异常掩码是否仍然会抛出异常,认为指定的错误状态标志仍然设置为true?如果是,我如何重置异常掩码,以便在未来出现适当情况时准备抛出更多异常?

ios::exceptions的文档中没有说明异常掩码在指定的错误状态标志之一熄灭后将/不会继续抛出异常。

总体问题是:如果异常掩码引发异常,然后通过使用ios::clear清除相关文件的错误状态标志,则例外掩码

异常掩码不抛出异常。抛出异常是指如果在修改之后,在与异常掩码中的设置位相对应的状态中至少有一个设置位,则修改流的状态的所有操作。

因此,如果使用clear的方式设置了异常掩码中存在的一个位,则会抛出异常。