1

我正在尝试访问一个可能不存在的文件:

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

});

如果文件不存在,则确实会调用“失败”方法,但仅在我的应用程序停止并出现异常“找不到文件”后才会发生这种情况。只有当我为调试器按“继续”时,它才会继续执行“失败”方法..

我究竟做错了什么?我应该事先检查是否存在吗?

4

2 回答 2

2

您看到的是第一次机会例外。调试器在抛出点中断。如果您点击调试器对话框上的“继续”按钮,应用程序将继续运行并且异常处理程序将运行。

您可以通过使用“调试|异常”菜单关闭首次机会异常来更改此设置。

于 2012-05-15T20:09:56.773 回答
1

为同样的问题苦苦挣扎了两三天,终于得出以下解决方案:我使用 getFilesAsync 函数获取文件夹中所有文件的列表,然后查看该列表以了解所需文件是否存在。之后,我可以调用 getFileAsyncs 而不抛出。不是很漂亮,但对我有用。我同意假设开发人员可以关闭异常并不是最好的建议……在我看来,这个问题应该被视为 RT 实现中的错误。

于 2012-06-04T17:25:57.673 回答