• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

javascript - 在 Obj C 中捕获 React Native 错误

[复制链接]
菜鸟教程小白 发表于 2022-12-13 13:05:59 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我希望防止我的 React Native 应用程序中任何意外引发的异常导致整个应用程序崩溃。

有什么方法可以处理在 obj c 端的 React Native JS 中引发的异常。 由于该过程超出了 App Delegate,简单的 @try/@catch 根本无法解决问题。

我已经实现了 NSSetUncaughtExceptionHandler,我已将其设置为提供故障堆栈跟踪,但在优雅地处理 RN 问题方面还不够



Best Answer-推荐答案


我不得不进行大量研究,因为它的文档非常少。最后,我的一个 friend 帮我解决了这个问题。

你需要设置

//This will tell react native that you are taking responsibility of fatal crashes.
RCTSetFatalHandler(^(NSError *error) {}); 

此外,创建一个 RCTExceptionsManager 实例并将其传递到您的类的 extraModulesForBridge 方法中,遵守 RCTBridgeDelegate 协议(protocol)。

- (NSArray *)extraModulesForBridgeRCTBridge *)bridge {
    return @[[RCTExceptionsManager alloc] initWithDelegate:self];
}

您需要实现的两个方法是:

 - (void)handleSoftJSExceptionWithMessageNSString *)message stackNSArray *)stack exceptionIdNSNumber *)exceptionId;
 - (void)handleFatalJSExceptionWithMessageNSString *)message stackNSArray *)stack exceptionIdNSNumber *)exceptionId;

这使您可以完全控制致命异常处理,并且 React native 崩溃不会使应用程序崩溃。

关于javascript - 在 Obj C 中捕获 React Native 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35582141/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap