mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-04 09:27:53 +08:00
Display JS component stack in native view exceptions
Reviewed By: mdvacca Differential Revision: D7578033 fbshipit-source-id: 4dc393cddf8487db58cc3a9fefbff220983ba9da
This commit is contained in:
committed by
Facebook Github Bot
parent
c4ab03a18e
commit
ff9b3c6517
@@ -42,11 +42,11 @@ import com.facebook.react.modules.deviceinfo.DeviceInfoModule;
|
||||
import com.facebook.react.uimanager.DisplayMetricsHolder;
|
||||
import com.facebook.react.uimanager.IllegalViewOperationException;
|
||||
import com.facebook.react.uimanager.JSTouchDispatcher;
|
||||
import com.facebook.react.uimanager.common.MeasureSpecProvider;
|
||||
import com.facebook.react.uimanager.PixelUtil;
|
||||
import com.facebook.react.uimanager.RootView;
|
||||
import com.facebook.react.uimanager.common.SizeMonitoringFrameLayout;
|
||||
import com.facebook.react.uimanager.UIManagerModule;
|
||||
import com.facebook.react.uimanager.common.MeasureSpecProvider;
|
||||
import com.facebook.react.uimanager.common.SizeMonitoringFrameLayout;
|
||||
import com.facebook.react.uimanager.events.EventDispatcher;
|
||||
import com.facebook.systrace.Systrace;
|
||||
import javax.annotation.Nullable;
|
||||
@@ -572,18 +572,13 @@ public class ReactRootView extends SizeMonitoringFrameLayout
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleException(Throwable t) {
|
||||
public void handleException(final Throwable t) {
|
||||
if (mReactInstanceManager == null
|
||||
|| mReactInstanceManager.getCurrentReactContext() == null) {
|
||||
throw new RuntimeException(t);
|
||||
}
|
||||
|
||||
// Adding special exception management for StackOverflowError for logging purposes.
|
||||
// This will be removed in the future.
|
||||
Exception e = (t instanceof StackOverflowError) ?
|
||||
new IllegalViewOperationException("StackOverflowException", this, t) :
|
||||
t instanceof Exception ? (Exception) t : new RuntimeException(t);
|
||||
|
||||
Exception e = new IllegalViewOperationException(t.getMessage(), this, t);
|
||||
mReactInstanceManager.getCurrentReactContext().handleException(e);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user