异步 React 方法中抛出的异常未在全局错误处理程序中捕获[重复]

问题描述 投票:0回答:1

我使用 React 并有这样的代码:

export default App;
window.onerror = function(error) {alert("Error caught: " + error);};
function App() {    
    perform().catch((error) =>{
        console.error('Error: '+error);
        throw error;
    });
}
async function perform() {
    throw Error("here");
}

但是 window.onerror 永远不会被调用。有什么想法吗?

javascript reactjs error-handling
1个回答
0
投票
perform().catch((error) =>{
  console.error('Error: '+error);
  throw error;
});

这个

throw
发生在promise的回调中,所以它会导致promise被拒绝。 window.onerror 不会因未处理的承诺拒绝而被调用。为此,您可以这样做:

window.onunhandledrejection = function (event) {
  alert("Error caught: " + event.reason);
}
© www.soinside.com 2019 - 2024. All rights reserved.