2

当使用 WinJS 在 Windows Metro 中发生未处理的异常时,我想导航到我的应用程序的主页并使用 FlyOut 显示错误。问题是程序仍然继续到terminateAppHandlerbase.js 中。

这是我到目前为止得到的:

WinJS.Application.onerror = function (customEventObject) {
    
    // Get the error message and name for this exception
    var errorMessage = customEventObject.detail.error.message;
    var errorName = customEventObject.detail.error.name;

    // Bind them in an optionsObject to pass with the navigation
    var optionsObject = { errName: errorName, errMsg: errorMessage };

    // Navigate home with information concerning the error
    WinJS.Navigation.navigate("/pages/home/home.html", optionsObject);

    // Need something to tell Windows that the error is "taken care" of
    return false; // ?? 
}

我在这里结束,终止应用程序:

var terminateAppHandler = function (data) {
    debugger;
    MSApp.terminateApp(data);
};

欢迎任何建议或意见!

4

2 回答 2

4

返回真而不是假。

对于不是通过 application.onerror 发送的异常,您还需要连接到 window.onerror。尽管如果出现异常,它确实是未处理的,并且无法预测应用程序处于什么状态。

于 2012-08-06T15:16:05.970 回答
1

返回 true 应该完全符合您的需要。这就是我在我的应用程序中使用的。

于 2012-08-06T15:25:58.433 回答