Use the provided NativeModuleCallExceptionHandler if provided
Summary: Before, any calls to ReactContext would either use the default DevSupportManager's exception handler in debug mode OR throw exceptions immediately in non debug mode. In order to intercept these kinds of native exceptions, we should reuse the NativeModuleCallExceptionHandler provided by the ReactInstanceManager. For those who don't specify a NativeModuleCallExceptionHandler, the resulting behavior remains the same. For those who do specify a NativeModuleCallExceptionHandler, the main difference is that it will now be responsible for handling exceptions for ReactContext.handleException Reviewed By: mdvacca Differential Revision: D7641772 fbshipit-source-id: 8f175df687723fcbb8a7620f90d8a08c94798738
This commit is contained in:
parent
a275eac56e
commit
311a7a8e82
|
@ -1070,15 +1070,13 @@ public class ReactInstanceManager {
|
|||
ReactMarker.logMarker(CREATE_REACT_CONTEXT_START);
|
||||
final ReactApplicationContext reactContext = new ReactApplicationContext(mApplicationContext);
|
||||
|
||||
if (mUseDeveloperSupport) {
|
||||
reactContext.setNativeModuleCallExceptionHandler(mDevSupportManager);
|
||||
}
|
||||
NativeModuleCallExceptionHandler exceptionHandler = mNativeModuleCallExceptionHandler != null
|
||||
? mNativeModuleCallExceptionHandler
|
||||
: mDevSupportManager;
|
||||
reactContext.setNativeModuleCallExceptionHandler(exceptionHandler);
|
||||
|
||||
NativeModuleRegistry nativeModuleRegistry = processPackages(reactContext, mPackages, false);
|
||||
|
||||
NativeModuleCallExceptionHandler exceptionHandler = mNativeModuleCallExceptionHandler != null
|
||||
? mNativeModuleCallExceptionHandler
|
||||
: mDevSupportManager;
|
||||
CatalystInstanceImpl.Builder catalystInstanceBuilder = new CatalystInstanceImpl.Builder()
|
||||
.setReactQueueConfigurationSpec(ReactQueueConfigurationSpec.createDefault())
|
||||
.setJSExecutor(jsExecutor)
|
||||
|
|
Loading…
Reference in New Issue