gpt4 book ai didi

reactjs - 如何在React应用程序中全局捕获错误

转载 作者:行者123 更新时间:2023-12-03 08:46:30 39 4
gpt4 key购买 nike

我有以下两个文件:

//index.js

ReactDOM.render(<App />, document.getElementById('root'));


// App.js
setTimeout(() => { throw new Error('An error')}, 3000)

class App extends Component {
render() {return (<div>Hello</div>)}
}

我想在 App.js文件之外捕获此错误,可能是在 index.js中。我尝试使用 ErrorBoundries( https://reactjs.org/docs/error-boundaries.html),但是很明显,它不会捕获组件生命周期之外的错误。

有人建议我使用 window.onerror错误处理程序。我对这种方法的担心是,即使外部库之一抛出错误,也会被触发。对此有何评论?

最佳答案

如果您试图在全局范围内捕获不包含第三方 Material 的错误,请不要使用throw自己的错误,只需使用一个函数并扔在那里

使用您的确切代码:

// utils.js
export default {
throw: err => { throw new Error(err) }
}

// App.js
import utils from 'utils'

setTimeout(() => { utils.throw('An error') }, 3000)

class App extends Component {
render() {return (<div>Hello</div>)}
}

关于reactjs - 如何在React应用程序中全局捕获错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52865602/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com