【问题标题】:Elgently ignoring netscape.javascript.JSException during development在开发过程中优雅地忽略 netscape.javascript.JSException
【发布时间】:2009-03-22 14:47:45
【问题描述】:

Eclipse 允许您使用 sun.applet.AppletViewer 调试小程序。它实际上将启动小程序,运行它并模拟完整的浏览器运行时。如果您的小程序中有 javascript 操作代码,这将导致 JSException,因为当前上下文不是真正启用 JS 的引擎。

你会如何解决这个问题?我可以看到几种可能的路径:

  1. 将异常包装在 try {} catch () 中并忽略它 - 不好的做法。
  2. 传递和环境标志将告诉我们当前处于调试模式的代码,这样它就不会尝试执行 JS 代码 - 可以,但需要每个开发人员的手动干预。
  3. 识别当前上下文不是浏览器 - 如何?
  4. 找到另一个可以模拟完整浏览器行为的 AppletViewer,包括 JS - 有吗?
  5. 更多?

感谢您的想法。

【问题讨论】:

    标签: javascript eclipse applet word-wrap appletviewer


    【解决方案1】:

    不是故障保险,而是我设法提出的可行解决方案:

    private void notifySelectionState(){
        JSObject jsObject = null;
    
        try {
            jsObject = JSObject.getWindow(applet);
    
            // An exception can be thrown here (hopefully) only is running in debug environment...
        } catch (JSException e) {
            // So actually what I'm doing here is checking (in a very lame fashion) for if I'm in a the browser
            // content or in the AppletViewer
        } 
    
        if (jsObject != null) {
            jsObject.call(...);
        }
    }
    

    【讨论】:

      【解决方案2】:

      在某些较旧的浏览器上,JSObject 将抛出通用 RuntimeExceptions 而不是 JSException。所以你可能想把你的网撒得更宽一些,并在你的包装中留下一个好的评论。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-12-02
        • 2010-10-19
        • 1970-01-01
        • 2017-07-11
        • 2011-02-14
        • 1970-01-01
        • 2019-11-10
        相关资源
        最近更新 更多