C#的C++ifstream异常掩码
C++ ifstream exception masks for C#
如何将此行从C++转换为C#?
std::ifstream in;
in.exceptions(std::ios_base::badbit); //*THIS LINE*
根据此页面,前一行代码为流设置了一个新的异常掩码,并清除任何当前错误状态标志。从上面链接的页面中,我还猜测它是std::ios::exceptions
的"第二种形式"。
由于我对C#的FileStream
类缺乏经验,我一直很困惑,因为缺少类似的东西。
FileStream.Read
和FileStream.Write
方法都将抛出IOException
。这是默认行为。
与C++不同,异常抛出是C#中错误处理的预期形式。因为异常从一开始就是.NET的一部分,所以没有像C++那样围绕流中使用异常的争论。
大多数(如果不是全部的话).NET框架标准库都会在异常状态下抛出异常。我能想到的唯一例外是在使用Try-Parse模式时,它对预期的行为非常明确。
相关文章:
- 位移操作和位掩码未检测到重复字符
- 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异常掩码和处理