diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNoCrashBridgeNotAllowedSoftException.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNoCrashBridgeNotAllowedSoftException.java new file mode 100644 index 00000000000..d4264167e6c --- /dev/null +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNoCrashBridgeNotAllowedSoftException.java @@ -0,0 +1,27 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +package com.facebook.react.bridge; + +/** + * Extends RuntimeException so that it may be caught by a {@link ReactSoftExceptionListener}. Any + * {@link ReactSoftExceptionListener} that catches a ReactNoCrashBridgeNotAllowedSoftException + * should log it only and not crash, no matter what. + */ +public class ReactNoCrashBridgeNotAllowedSoftException extends ReactNoCrashSoftException { + public ReactNoCrashBridgeNotAllowedSoftException(String m) { + super(m); + } + + public ReactNoCrashBridgeNotAllowedSoftException(Throwable e) { + super(e); + } + + public ReactNoCrashBridgeNotAllowedSoftException(String m, Throwable e) { + super(m, e); + } +} diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.java index ff515cc5318..74aee9148f8 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.java @@ -40,6 +40,12 @@ public class ReactSoftExceptionLogger { sListeners.clear(); } + @DoNotStrip + public static void logSoftExceptionVerbose(final String category, final Throwable cause) { + logSoftException( + category + "|" + cause.getClass().getSimpleName() + ":" + cause.getMessage(), cause); + } + @DoNotStrip public static void logSoftException(final String category, final Throwable cause) { if (sListeners.size() > 0) {