验证JavaScript代码

时间:2010-01-14 11:20:01

标签: java javascript rhino scriptengine

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

如果是JavaScript代码

  • 无效
  • 不遵循界面(缺少方法,错误的返回类型,抛出异常等)。

我在执行代码时从Rhino或UndeclaredThrowableException获取内部异常。两者都是RuntimeExceptions,它们不被“允许”捕获。

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

3 个答案:

答案 0 :(得分:2)

  

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

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

如果没有设计自己的验证框架,您可以做的最好的事情是使用JSLint检查语法错误。

答案 1 :(得分:1)

几年后......对于偶然发现此事的人: 您可以使用严格模式,使用"use strict";

添加更多运行时检查

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

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

答案 2 :(得分:0)

闭包编译器根据注释进行各种验证。

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