捕获异步函数(Javascript)中的未捕获异常

捕获异步函数(Javascript)中的未捕获异常,javascript,exception,async-await,Javascript,Exception,Async Await,目前我有如下代码: window.onerror = function() { // Send some debug info about the defective error handling, // so that it may be fixed }; 处理其他未捕获的异常。不幸的是,这不适用于async函数。例如,如果我们在下面调用fooancy(): async function fooasync() { throw 'Catch me!'; } 然后异常(

目前我有如下代码:

window.onerror = function() {
    // Send some debug info about the defective error handling,
    // so that it may be fixed
};
处理其他未捕获的异常。不幸的是,这不适用于
async
函数。例如,如果我们在下面调用
fooancy()

async function fooasync() {
    throw 'Catch me!';
}
然后异常(如果没有捕获)将不会被
窗口捕获。onerror
捕获所有

我已经做了必要的搜索,并且基本上得到了答案,“这是不可能的,而且无论如何,这将是不好的,您应该明确地捕获它。”我当然同意,但是如果您不小心没有在
try…catch
中包装
异步
函数呢

作为一个有效用例的示例:我使用
window.onerror
处理程序向我发送一封调试电子邮件,让我知道使用我的工具的人出了严重错误。很好,至少我意识到了这个问题:现在我可以修复这个问题(甚至可以通过显式的
try…catch
)修复中断的错误处理)。然而,对于
async
函数,我甚至没有办法意识到这个问题(除了有人抱怨它没有按预期的方式工作)


是否可以捕获这些
异步
未捕获异常?

onerror
类似,存在
onUnhandlerRejection
,如果承诺被拒绝且没有附加处理程序,将触发该异常

异步函数中没有未捕获的异常
s-它们总是被捕获并拒绝承诺。这可能会导致未经处理的拒绝-搜索该术语。