Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C++;C的ifstream异常掩码# 如何将这条线从C++转换成C?_C#_C++_Ios_Exception_Ifstream - Fatal编程技术网

C# C++;C的ifstream异常掩码# 如何将这条线从C++转换成C?

C# C++;C的ifstream异常掩码# 如何将这条线从C++转换成C?,c#,c++,ios,exception,ifstream,C#,C++,Ios,Exception,Ifstream,根据,前一行代码为流设置新的异常掩码,并清除所有当前错误状态标志。我还猜测它是上面链接页面中std::ios::exceptions的“第二种形式” 由于我对C#的FileStream类缺乏经验,我一直很困惑,因为没有类似的东西 如果发生任何底层I/O错误,和方法都将抛出。这是默认行为 不同于C++,异常抛出是C语言中错误处理的预期形式。因为异常是.NET的一部分,从没有开始使用流异常,如C++一样。 大多数(如果不是全部的话)的.NETFramework标准库都会在异常状态下抛出异常。我唯一能

根据,前一行代码为流设置新的异常掩码,并清除所有当前错误状态标志。我还猜测它是上面链接页面中
std::ios::exceptions
的“第二种形式”

由于我对C#的
FileStream
类缺乏经验,我一直很困惑,因为没有类似的东西

如果发生任何底层I/O错误,和方法都将抛出。这是默认行为

不同于C++,异常抛出是C语言中错误处理的预期形式。因为异常是.NET的一部分,从没有开始使用流异常,如C++一样。


大多数(如果不是全部的话)的.NETFramework标准库都会在异常状态下抛出异常。我唯一能想到的例外是在使用它时,它对预期行为非常明确。

仅用于C++:抛出异常流是不好的(我的意见)。对于C++与C++/CLR的交互,它变得更糟了——你必须将C++异常转换成C++ + CLR异常,同时跨越边界从C++到C++ + CLRY感谢你的响应!我没有使用C++/clr。我只想用C#完成同样的事情。您是否试图让FileStream在IO错误上抛出异常?因为这是默认的行为。如果发生IO错误,读写方法都会抛出IOException。@Pixelbacker这正是我需要知道的。非常感谢。我在回答中详述了我的陈述。如果你觉得我的评论有用,如果你能将此作为答案,我将不胜感激。
std::ifstream in;
in.exceptions(std::ios_base::badbit); //*THIS LINE*