我正在尝试访问可能不存在的文件:
var localFolder = Windows.Storage.ApplicationData.current.localFolder;
localFolder.getFileAsync(stateFile).then(function (file) {
Windows.Storage.FileIO.readTextAsync(file).then(function (text) {
// do something with the text
});
}, function (err) {
// log error, load dummy data
});
如果文件不存在,则会调用“fail”方法,但是只有在我的应用程序暂停并且“找不到文件”之后才会发生。只有当我按下“继续”调试器时才会继续“失败”方法..
我在做错了什么?我应该事先检查存在吗?答案 0 :(得分:2)
你看到了第一次机会异常。调试器在抛出点处破坏。如果按下调试器对话框上的“继续”按钮,应用程序将继续运行,异常处理程序将运行。
您可以使用“调试|例外”菜单更改此功能,以关闭第一次机会异常。
答案 1 :(得分:1)
我一直在努力解决这个问题两三天,最后得出以下解决方案:我使用getFilesAsync函数获取文件夹中所有文件的列表,然后查看此列表以了解是否需要文件已存在。之后我可以在不抛出的情况下调用getFileAsyns。不是很漂亮,但适合我。我同意假设开发人员可以关闭异常并不是最好的建议......在我看来,这个问题应该被视为RT实现中的一个错误。