【问题标题】:Validate JavaScript-Code验证 JavaScript 代码
【发布时间】:2011-01-05 00:59:56
【问题描述】:

我使用 Java 的 ScriptEngine 来执行 JavaScript 代码。我使用 Invocable 接口,这样我就可以将脚本代码用作实现 Java 接口的普通 Java 对象。

如果 JavaScript 代码

  • 无效
  • 不遵循接口(缺少方法、错误返回类型、抛出异常等)

我在执行代码时收到来自 Rhino 的内部异常或 UndeclaredThrowableException。两者都是 RuntimeExceptions,它们是“不允许”捕获的。

有没有办法在执行之前验证代码?还是我必须在这里打破规则并捕获 RuntimeExceptions?这对我有用,但最优雅的方式是什么?

【问题讨论】:

    标签: java javascript rhino scriptengine


    【解决方案1】:

    有没有办法验证代码 在执行之前?

    没有。 JavaScript 是松散类型的,没有接口的概念,并且是动态解释的。

    如果不设计您自己的验证框架,您能做的最好的事情就是使用JSLint 检查它的语法错误。

    【讨论】:

      【解决方案2】:

      几年后......对于其他偶然发现这一点的人: 你可以使用严格模式,通过"use strict";添加更多运行时检查

      http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/

      一些代码编辑器提供实时验证(语法...)

      【讨论】:

        【解决方案3】:

        闭包编译器基于注解进行各种验证。

        https://developers.google.com/closure/compiler/docs/js-for-compiler

        【讨论】:

          猜你喜欢
          • 2012-05-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-14
          • 1970-01-01
          • 2011-08-14
          • 2013-12-09
          • 2013-04-14
          相关资源
          最近更新 更多