• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

WinJS中未处理的异常

JavaScript 来源:Mugu 5次浏览

有谁能告诉我如何处理WinJS代码中未处理的异常。是否有更好的方式来处理它们而不是使用try/catch块。我已经在我的代码的某些部分中使用了try/catch块。WinJS中未处理的异常

===========解决方案如下:

try/catch是处理异常的语言机制。

您是否正在处理常规异常,或者您在异步代码(承诺内)中是否有未处理的异常?如果是后者,则try/catch将不起作用,因为设置try/catch的堆栈帧在异步操作完成时消失。

在这种情况下,你需要一个错误处理程序添加到您的承诺:

doSomethingAsync().then(
    function (result) { /* successful completion code here */ }, 
    function (err) { /* exception handler here */ }); 

例外沿着承诺链传播,所以你可以放在最后一个处理程序,它会处理中的任何异常那承诺链。您也可以将错误处理程序传递给done()方法。其结果可能是这个样子:

doSomethingAsync() 
    .then(function (result) { return somethingElseAsync(); }) 
    .then(function (result) { return aThirdAsyncThing(); }) 
    .done(
     function (result) { doThisWhenAllDone(); }, 
     function (err) { ohNoSomethingWentWrong(err); } 
    ); 

最后,未处理的异常最终在window.onerror结束了,所以你可以捕捉到他们那里。我现在只做日志记录;试图恢复你的应用程序,并继续从顶级错误处理程序运行通常是一个坏主意。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)