You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ky...@apache.org on 2018/05/14 06:20:45 UTC
incubator-weex git commit: * [Android] Add exception info when there
is a JS error during addElementAction.
Repository: incubator-weex
Updated Branches:
refs/heads/master b049f80ee -> 39b4add31
* [Android] Add exception info when there is a JS error during addElementAction.
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/39b4add3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/39b4add3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/39b4add3
Branch: refs/heads/master
Commit: 39b4add31d1d76284b5609a992c1e78576f3b527
Parents: b049f80
Author: YorkShen <sh...@gmail.com>
Authored: Mon May 14 12:05:42 2018 +0800
Committer: YorkShen <sh...@gmail.com>
Committed: Mon May 14 14:20:31 2018 +0800
----------------------------------------------------------------------
.../com/taobao/weex/common/WXErrorCode.java | 2 ++
.../weex/ui/action/GraphicActionAddElement.java | 29 +++++++++++++++-----
2 files changed, 24 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/39b4add3/android/sdk/src/main/java/com/taobao/weex/common/WXErrorCode.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/common/WXErrorCode.java b/android/sdk/src/main/java/com/taobao/weex/common/WXErrorCode.java
index e18a075..fcc5394 100644
--- a/android/sdk/src/main/java/com/taobao/weex/common/WXErrorCode.java
+++ b/android/sdk/src/main/java/com/taobao/weex/common/WXErrorCode.java
@@ -231,6 +231,8 @@ public enum WXErrorCode {
WX_RENDER_ERR_JS_CREATE_INSTANCE("-9600", "WX_RENDER_ERR_JS_CREATE_INSTANCE",ErrorType.RENDER_ERROR,ErrorGroup.JS),
WX_RENDER_ERR_JS_RUNTIME("-9601", "WX_RENDER_ERR for js error",ErrorType.RENDER_ERROR, ErrorGroup.JS),
WX_RENDER_ERR_LAYER_OVERFLOW("-9602", "WX_RENDER_ERR_LAYER_OVERFLOW", ErrorType.RENDER_ERROR, ErrorGroup.JS),
+ WX_RENDER_ERR_CONTAINER_TYPE("-9611", "WX_RENDER_ERR_CONTAINER_TYPE", ErrorType.JS_ERROR,ErrorGroup.JS),
+
/**
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/39b4add3/android/sdk/src/main/java/com/taobao/weex/ui/action/GraphicActionAddElement.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/action/GraphicActionAddElement.java b/android/sdk/src/main/java/com/taobao/weex/ui/action/GraphicActionAddElement.java
index 347b7fa..77bb5e2 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/action/GraphicActionAddElement.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/action/GraphicActionAddElement.java
@@ -23,11 +23,13 @@ import android.support.annotation.RestrictTo.Scope;
import android.support.annotation.WorkerThread;
import com.taobao.weex.WXSDKInstance;
import com.taobao.weex.WXSDKManager;
+import com.taobao.weex.common.WXErrorCode;
import com.taobao.weex.dom.transition.WXTransition;
import com.taobao.weex.ui.component.WXComponent;
import com.taobao.weex.ui.component.WXVContainer;
+import com.taobao.weex.utils.WXExceptionUtils;
import com.taobao.weex.utils.WXLogUtils;
-
+import java.util.Locale;
import java.util.Map;
import java.util.Set;
@@ -63,13 +65,26 @@ public class GraphicActionAddElement extends GraphicActionAbstractAddElement {
return;
}
- parent = (WXVContainer) WXSDKManager.getInstance().getWXRenderManager().getWXComponent(getPageId(), mParentRef);
- BasicComponentData basicComponentData = new BasicComponentData(ref, mComponentType, mParentRef);
- child = createComponent(instance, parent, basicComponentData);
- child.setTransition(WXTransition.fromMap(child.getStyles(), child));
+ try {
+ parent = (WXVContainer) WXSDKManager.getInstance().getWXRenderManager()
+ .getWXComponent(getPageId(), mParentRef);
+ BasicComponentData basicComponentData = new BasicComponentData(ref, mComponentType,
+ mParentRef);
+ child = createComponent(instance, parent, basicComponentData);
+ child.setTransition(WXTransition.fromMap(child.getStyles(), child));
- if (child == null || parent == null) {
- return;
+ if (child == null || parent == null) {
+ return;
+ }
+ }catch (ClassCastException e){
+ WXExceptionUtils.commitCriticalExceptionRT(instance.getInstanceId(),
+ WXErrorCode.WX_RENDER_ERR_CONTAINER_TYPE,
+ "GraphicActionAddElement",
+ String.format(Locale.ENGLISH,"You are trying to add a %s (ref: %s) to a %3$s (ref: %4$s), which is illegal as %3$s (ref: %4$s) is not a container",
+ componentType, ref,
+ WXSDKManager.getInstance().getWXRenderManager().getWXComponent(getPageId(), mParentRef).getComponentType(),
+ parentRef),
+ null);
}
}