经过一番调试,我发现“com.google.gwt.event.shared.UmbrellaException:一个或多个异常被捕获,请参阅 UmbrellaException#getCauses 调用方法时的完整集:[nsIDOMEventListener::handleEvent]”(在 web 模型中)是由运行时空指针引起。问题是为什么在主机模型下没有抛出这种运行时空指针异常。实际上,blow 代码不会抛出任何异常,甚至在我的笔记本电脑中弹出警报(gwt 2.4 + java 7 64bit+ubuntu 12.04 64bit+eclipse 3.7)。只要 JavascriptObject 指针出现运行时空值,任何人都知道如何强制 eclipse 抛出异常。
public class GWTTest implements EntryPoint
{
public static class JsObj extends JavaScriptObject
{
protected JsObj()
{
}
public final native void setValue(String Value)/*-{
this.Value=Value;
alert(Value);
}-*/;
}
public void onModuleLoad()
{
JsObj jsObj = null;
jsObj.setValue("val");
}
}