首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >File.WriteAllText真的抛出FileNotFoundException吗?

File.WriteAllText真的抛出FileNotFoundException吗?
EN

Stack Overflow用户
提问于 2012-02-18 12:21:00
回答 1查看 2.1K关注 0票数 1

文档中写道:

代码语言:javascript
复制
// Summary:
//     Creates a new file, writes the specified string to the file, and then closes
//     the file. If the target file already exists, it is overwritten.

第一行,第一句话:Creates a new file,以及它列出的异常:

代码语言:javascript
复制
//   System.IO.FileNotFoundException:
//     The file specified in path was not found.

在什么情况下会发生这种情况?如果它总是创建一个文件,那么它就不应该抛出FileNotFoundException...

文档有误吗?或者它可能缺少一个<remarks>标签?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-18 12:34:49

File.WriteAllText最终调用:

代码语言:javascript
复制
private static void InternalWriteAllText(string path, string contents, Encoding encoding)
{
    using (StreamWriter streamWriter = new StreamWriter(path, false, encoding))
    {
        streamWriter.Write(contents);
    }
}

在调用InternalWriteAllText之前抛出的所有异常都会抛出ArgumentExceptionArgumentNullException,但理论上(因为FileStream可以抛出异常),streamWriter.Write(contents);可能会抛出异常。不过,从它的作用和streamWriter的打开方式来看,这是不太可能的。

我不一定要说医生本身是错的,更多的是MS通过记录(非常罕见的)可能性来掩盖他们的臀部。

来源:使用ILSpy反编译mscorlib v4.0.0.0。

更新

刚刚检查了mscorlib v2.0.0.0,情况相同,只是它包含的健全性检查较少(这意味着它基本上直接转换为上面的代码)。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9338512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档