我使用 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 永远不会被调用。有什么想法吗?
perform().catch((error) =>{
console.error('Error: '+error);
throw error;
});
这个
throw
发生在promise的回调中,所以它会导致promise被拒绝。 window.onerror 不会因未处理的承诺拒绝而被调用。为此,您可以这样做:
window.onunhandledrejection = function (event) {
alert("Error caught: " + event.reason);
}