Add extra logging in the Bridge exception handling

Summary:
This diff adds extra logging in the method that handles exceptions for RN Android
Changelog: internal

Reviewed By: JoshuaGross

Differential Revision: D18694123

fbshipit-source-id: e275445b65473ed55eec9d4b823938e32fa805e5
This commit is contained in:
David Vacca 2019-11-27 15:54:37 -08:00 коммит произвёл Facebook Github Bot
Родитель 3e065572df
Коммит 4ad852c137
1 изменённых файлов: 17 добавлений и 3 удалений

Просмотреть файл

@ -16,11 +16,13 @@ import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import androidx.annotation.Nullable;
import com.facebook.common.logging.FLog;
import com.facebook.infer.annotation.Assertions;
import com.facebook.infer.annotation.ThreadConfined;
import com.facebook.react.bridge.queue.MessageQueueThread;
import com.facebook.react.bridge.queue.ReactQueueConfiguration;
import com.facebook.react.common.LifecycleState;
import com.facebook.react.common.ReactConstants;
import com.facebook.react.config.ReactFeatureFlags;
import java.lang.ref.WeakReference;
import java.util.concurrent.CopyOnWriteArraySet;
@ -359,11 +361,23 @@ public class ReactContext extends ContextWrapper {
* otherwise.
*/
public void handleException(Exception e) {
if (mCatalystInstance != null
&& !mCatalystInstance.isDestroyed()
&& mNativeModuleCallExceptionHandler != null) {
boolean catalystInstanceVariableExists = mCatalystInstance != null;
boolean isCatalystInstanceAlive =
catalystInstanceVariableExists && !mCatalystInstance.isDestroyed();
boolean hasExceptionHandler = mNativeModuleCallExceptionHandler != null;
if (isCatalystInstanceAlive && hasExceptionHandler) {
mNativeModuleCallExceptionHandler.handleException(e);
} else {
FLog.e(
ReactConstants.TAG,
"Unable to handle Exception - catalystInstanceVariableExists: "
+ catalystInstanceVariableExists
+ " - isCatalystInstanceAlive: "
+ !isCatalystInstanceAlive
+ " - hasExceptionHandler: "
+ hasExceptionHandler,
e);
throw new RuntimeException(e);
}
}