Windows 8 当应用程序崩溃时,承诺会发生什么?

Windows 8 当应用程序崩溃时,承诺会发生什么?,windows-8,microsoft-metro,winjs,Windows 8,Microsoft Metro,Winjs,我正在使用Javascript(WinJS)为Windows8Metro开发一个应用程序 假设我有以下代码: Windows.Storage.ApplicationData.current.localFolder.createFileAsync("test.dat", Windows.Storage.CreationCollisionOption.replaceExisting) .done( /* write some data to the file here */)

我正在使用Javascript(WinJS)为Windows8Metro开发一个应用程序

假设我有以下代码:

Windows.Storage.ApplicationData.current.localFolder.createFileAsync("test.dat", Windows.Storage.CreationCollisionOption.replaceExisting)
    .done(
        /* write some data to the file here */)

var x = null;
x.prop = 1;
很明显,前面的代码将在x.prop=1行崩溃。createFileAsync承诺会发生什么变化

做一个简单的调试测试会产生这样一个事实,即即使应用程序崩溃,承诺也会完成,但是我可以确定情况总是这样,并且文件将被创建和写入吗


谢谢。

如果应用程序崩溃,我想你不能肯定这个承诺会实现。如果返回承诺的操作足够快地完成,它可能会。但如果你想得到保证,我想你不会得到

我建议您进行防御性编码,这样,如果没有创建文件,您可以在下次应用程序运行时创建它

当然,最重要的是,您应该进行适当的异常处理,以确保应用程序不会因为简单的异常而崩溃


有关开发Windows应用商店应用程序的更多信息,请查看。

谢谢您的回复。我知道正确的异常处理是解决问题的方法,但我感兴趣的是为应用程序创建一个自动化测试环境,如果发生崩溃,它将捕获崩溃。这是在应用程序在Windows应用商店上线之前,因为我知道在这之后,我可以在应用程序仪表板中看到所有崩溃。