Open
Description
全局捕获JS运行时错误代码
使用global.ErrorUtils.setGlobalHandler
全局捕获错误以避免崩溃
if(!__DEV__){
global.ErrorUtils.setGlobalHandler(async (e, isFatal) => {
if (isFatal) {
e.name //错误类型
e.message //错误信息
e.componentStack||e.stack //错误代码定位
}
}
}
补充:
- isFatal
建议保留isFatal=true
的判断,尽管目前都是true
[1]
全局捕获未处理的Promise错误
require('promise/setimmediate/rejection-tracking').enable({
onUnhandled:(id, error = {})=>{
console.log("全局捕获未处理的Promise错误",id,error)
console.log(error.name)
console.log(error.message)
console.log(error.componentStack||error.stack)
}
})
重启rn页面
- ios
NativeModules.BridgeReloader.reload()
- android
@ReactMethod public void reload() { Activity activity = getCurrentActivity(); Intent intent = activity.getIntent(); activity.finish(); activity.startActivity(intent); }