gpt4 book ai didi

javascript - WinJS 中未处理的异常

转载 作者:行者123 更新时间:2023-11-30 08:10:26 30 4
gpt4 key购买 nike

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

最佳答案

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

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

在这种情况下,您需要向您的 promise 添加一个错误处理程序:

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

异常沿着 promise 链传播,因此您可以在末尾放置一个处理程序,它将处理该 promise 链中的任何异常。您还可以将错误处理程序传递给 done() 方法。结果可能如下所示:

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

最后,未处理的异常最终会出现在 window.onerror,因此您可以在那里捕获它们。此时我只会进行日志记录;尝试恢复您的应用并继续从顶级错误处理程序运行通常不是一个好主意。

关于javascript - WinJS 中未处理的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11161461/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com