第一次机会 FileNotFoundException 调用 IsolatedStorageFile.OpenFile



在我的代码中的某个地方,我有这样一行:

return _store.OpenFile(path, fileMode);

随着fileMode有时FileMode.Create,有时FileMode.Open.一切正常,我总是得到一个有效的流,如有必要,文件被正确创建。

但是,我

刚刚在我的 VS 输出中发现,每次调用上述行所在的方法时,我都会收到以下消息:

类型为"System.IO.FileNotFoundException"的第一次机会异常 发生在姆科利布.dll

创建文件时

出现此错误,当文件被覆盖(并且显然存在)时也收到此错误。

我只是对这些错误感到好奇,因为一切都很完美。

谢谢

编辑:new IsolatedStorageFileStream(...)相同。一切正常,但我仍然收到"第一次机会例外"消息。

var isf = IsolatedStorageFile.GetUserStoreForApplication();
IsolatedStorageFileStream isfs;
if (!isf.FileExists(_filename))
    isfs = new IsolatedStorageFileStream(_filename, System.IO.FileMode.Create, isf);
else
    isfs = new IsolatedStorageFileStream(_filename, System.IO.FileMode.Open, isf);

var writer = XmlWriter.Create(isfs);
xml.Save(writer);
writer.Close();
isfs.Close();
isfs.Dispose();
isf.Dispose();

找到了答案。

这就是 VS 调试器的工作方式:对于 {{catch}} 块捕获的每个异常,VS 输出中都会显示一条"第一次机会异常"消息。所以在这里,我们可以猜测,在内部,{{OpenFile}} 方法使用 try/catch 块来检查文件是否存在。

最新更新