GWT在托管模式下运行良好,编译没有错误 - 但它的JS文件有问题

时间:2011-08-10 22:27:22

标签: gwt

我没有在编译或托管模式过程中出现错误,但GWT创建的JS包含不允许正确呈现网站的错误。怎么会发生这种情况?这是编译器的问题吗?

FireBug没有给我任何东西,也没有任何错误。

但是我不知道从这里去哪里或者提供更多信息给你们所有,因为我无法像这样有效地调试JS。更基本的是,我只是不明白为什么GWT给了我不起作用的JS。

编辑:到目前为止,我真的不知道漂亮和详细的含义。谢谢你指点我。我现在得到的是http://i.imgur.com/qUyNb.png

我不确定从哪里开始。

编辑2:这是我要发布的最终图片(我保证!):http://i.imgur.com/ZVQVW.png。这是相当不错的输出。错误内容为:“未捕获的com.google.gwt.core.client.JavaScriptException(TypeError):无法调用null(匿名函数)的方法'isString'。”

1 个答案:

答案 0 :(得分:3)

该问题的解决方案是实现isString不是JNSI方法,而是我在try / catch块中编写的方法。这就是让我失望的代码:

try{something that will create a NullPointerException}
catch(NullPointerException npe){npe.printStackTrace()}

@Luismahou上面的链接说明以下关于GWT中的错误捕获:

  

异常:try,catch,最后和正常支持用户定义的异常,尽管在生产模式下没有有意义的Throwable.getStackTrace()支持。   注意:Java VM隐式生成的几个基本异常,尤其是NullPointerException,StackOverflowError和OutOfMemoryError,不会在生产模式中发生。而是为任何隐式生成的异常生成JavaScriptException。这是因为底层JavaScript异常的性质无法可靠地映射到适当的Java异常类型。

我认为发生的事情是我的try块抛出了一个NullPointerException,它被表示为JavaScriptException并且被catch块未被捕获。获得的经验教训:不要在GWT中捕获NullPointerExceptions,StackOverflowErrors和OutOfMemoryErrors。