首页 > 解决方案 > JsExceptions 的本质是什么以及如何处理?

问题描述

在生产模式下的 gwt 项目中,我们将未捕获的异常及其堆栈跟踪发送到服务器。但有时我们会收到一个没有堆栈跟踪的 JsExceptions,只是 java.lang.JsException。那是什么?我该怎么做才能意识到错误发生在哪里?谢谢。

标签: javascriptjavagwt

解决方案


这表明发生了一些普通的 JS 错误,GWT 无法以有意义的方式翻译(最近 GWT 中的“空指针”被正确包装,或者通过其他一些被重新包装为 a 的 api JavaScriptException)。调试这个通常应该像任何其他 JS 异常一样进行 - 使用浏览器的调试工具来检查发生了什么以及为什么。

遇到此类情况的一些不太常见的方法可能包括页面上的其他 JS 脚本行为不端、可能更改/替换浏览器 API,或者用户安装其他扩展来改变浏览器 API 的功能。

使用浏览器的调试器的“暂停捕获和未捕获的异常”功能来检查在这种情况下会发生什么,或者检查 JsExceptionbackingJsObject字段或getStackTrace()返回值中的堆栈跟踪。如果它不存在,这可能意味着浏览器太旧而无法捕获(并且在 GWT 中禁用了模拟堆栈跟踪或遗留堆栈跟踪功能),或者底层 JS 对象根本没有堆栈跟踪由于某些原因。


推荐阅读