【发布时间】:2018-07-03 15:23:40
【问题描述】:
在生产模式下的 gwt 项目中,我们将未捕获的异常及其堆栈跟踪发送到服务器。但有时我们会收到一个没有堆栈跟踪的 JsExceptions,只是 java.lang.JsException。那是什么?我该怎么做才能意识到错误发生在哪里?谢谢。
【问题讨论】:
标签: javascript java gwt
在生产模式下的 gwt 项目中,我们将未捕获的异常及其堆栈跟踪发送到服务器。但有时我们会收到一个没有堆栈跟踪的 JsExceptions,只是 java.lang.JsException。那是什么?我该怎么做才能意识到错误发生在哪里?谢谢。
【问题讨论】:
标签: javascript java gwt
这表明发生了一些普通的 JS 错误,GWT 无法以有意义的方式进行转换(最近 GWT 中的“空指针”被正确包装,或者通过其他一些被重新包装为 JavaScriptException 的 api)。调试这个通常应该像任何其他 JS 异常一样进行 - 使用浏览器的调试工具来检查发生了什么以及为什么。
遇到此类情况的一些不太常见的方法可能包括页面上的其他 JS 脚本行为不端、可能更改/替换浏览器 API,或者用户安装其他扩展程序会改变浏览器 API 的功能。
使用浏览器的调试器的“捕获和未捕获异常暂停”功能来检查在这种情况下会发生什么,或检查 JsException 的 backingJsObject 字段或 getStackTrace() 返回值中的堆栈跟踪。如果它不存在,这可能意味着浏览器太旧而无法捕获(并且 GWT 中禁用了模拟堆栈跟踪或遗留堆栈跟踪功能),或者底层 JS 对象根本没有堆栈跟踪由于某些原因。
【讨论】: