ErrorBoundary 处理自定义错误
ErrorBoundary 处理自定义错误
背景
错误边界是一种 React 组件,这种组件可以捕获发生在其子组件树任何位置的 JavaScript 错误,并打印这些错误,同时展示降级 UI。
问题
react
只能在以下 3 种实现下才会捕获错误
- 渲染期间
- 生命周期方法
- 整个组件树的构造函数
- 事件处理
- 异步代码(例如
setTimeout
、Promise
回调函数) - 服务端渲染
- 它自身抛出来的错误(并非它的子组件)
ErrorBoundary
的错误处理逻辑。实现
【ErrorBoundary 处理自定义错误】如果要
ErrorBoundary
能处理业务代码的自定义错误,只要在渲染期间抛出错误即可。Class Component
try {
const res = await fetchMayError();
} catch (err) {
this.setState(() => {
throw err;
});
}
Hooks
function useErrorHandler() {
const [error, setError] = React.useState(null);
if (error != null) throw error;
return setError;
}function Foo() {
const handleError = useErrorHandler();
fetchMayError().catch(handleError);
return ;
}
Inspired
- https://github.com/bvaughn/re...
推荐阅读
- 系统之家win7重装成win10处理办法
- Android---Handler消息处理机制
- 安卓 网络请求数据处理(在适配器中处理)
- Android 消息处理源代码分析
- 金山WPS文档插入的图片不显示的处理办法_WPS office
- word提示:设置进度然后打开不了了的2种处理办法_Word专区
- Android-注解处理器
- 自己定义Application的未捕获异常处理
- 处理升级Win10 14393更新后无法登录到桌面
- 崩溃 新补丁处理Win10中迅雷下载到99%自动关闭