gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:39:04 24 4
gpt4 key购买 nike

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

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

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

最佳答案

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

你需要设置

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

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

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

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

 - (void)handleSoftJSExceptionWithMessage:(NSString *)message stack:(NSArray *)stack exceptionId:(NSNumber *)exceptionId;
- (void)handleFatalJSExceptionWithMessage:(NSString *)message stack:(NSArray *)stack exceptionId:(NSNumber *)exceptionId;

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

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

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