目前,我有如下代码:
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
包罗万象的内容将不会捕获到异常(如果没有捕获的话)...
我已经完成了必要的搜索,并且大多数人都回答了这一问题,“这是不可能的,无论如何,这很糟糕,您应该明确地抓住它。”我当然同意,但是如果您不小心没有将async
函数包装在try...catch
中怎么办?
作为有效用例的示例:我使用window.onerror
处理程序向我发送了一封调试电子邮件,以让我知道使用我的东西的人发生了严重错误。很好,至少我知道这个问题:现在,我可以解决问题(甚至可以使用显式try...catch
来解决错误的错误处理)。但是,在使用async
函数的情况下,我什至没有办法意识到这个问题(除了有人抱怨它没有按预期的方式工作)。
是否可以捕获这些async
未捕获的异常?
答案 0 :(得分:2)
类似于onerror
,有onunhandledrejection
,如果Promise拒绝并且没有附加处理程序,则将触发(package-initialize)
(elpy-enable)
。 Read on on MDN