<分区>
目前我有这样的代码:
window.onerror = function() {
// Send some debug info about the defective error handling,
// so that it may be fixed
};
处理未捕获的异常。不幸的是,这不适用于 async
函数。例如,如果我们在下面调用 fooasync()
:
async function fooasync() {
throw 'Catch me!';
}
然后异常(如果未被捕获)将不会被 window.onerror
catch-all...
我已经完成了必要的搜索并且大部分都得到了答案,“这是不可能的,无论如何,这会很糟糕,你应该明确地捕获它。”我当然同意,但是如果您不小心没有将 async
函数包装在 try...catch
中怎么办?
作为一个有效用例的示例:我使用 window.onerror
处理程序向我发送调试电子邮件,让我知道使用我的任何东西的人都出现了可怕的错误。太好了,至少我知道了这个问题:现在我可以解决这个问题了(甚至可以用显式的 try...catch
修复损坏的错误处理)。但是,在 async
函数的情况下,我什至没有办法意识到这个问题(除了有人提示它没有按照预期的方式工作)。
是否可以捕获这些async
未捕获的异常?