【问题标题】:Getting line number for error when evaluating a script using java's javascript engine使用 java javascript 引擎评估脚本时获取错误的行号
【发布时间】:2014-11-27 07:05:27
【问题描述】:

如果在由 java 的 javascript 引擎运行的脚本中发生运行时错误,我可以很高兴地从异常中获取错误以及重要的行号。

在加载“关卡”时,我会评估关卡脚本以在需要时进行初始化,这也会评估各种事件可选使用的函数(如果找到的话)

但是,如果在评估(未运行!)函数时出现语法错误,我会收到这样的消息

[java] sun.org.mozilla.javascript.EvaluatorException: syntax error (<Unknown source>#1) in <Unknown source> at line number 1 at line 1,-1

即使错误出现在函数的第一行之后

如何获取脚本中发生错误的行和列号?

【问题讨论】:

  • 看来我可以捕获 sun.org.mozilla.javascript.EvaluatorException 也不将 ScriptException 转换为 sun.org.mozilla.javascript.EvaluatorException (如果这有帮助!)

标签: java javascript exception evaluation


【解决方案1】:

哎哟!

似乎我的 xml 解析器 (sax) 正在剥离回车符(但对制表符的其他空白很满意 - 去看看!)

我的工作是做......

os.write((" script=\""+levelScript.replace("\n","&#xA;\n")+"\"").getBytes());

对于脚本属性(我在 xA 实体后添加 \n 只是为了使 xml 更具可读性

无论如何,如果您还没有意识到...脚本被加载为一长行,所以所有错误都出现在第 1 行!!!

请注意,我可以发誓我正在获取运行时错误的行号....

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-10
    • 1970-01-01
    • 2017-10-18
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    • 2017-11-21
    • 1970-01-01
    相关资源
    最近更新 更多