使用脚本引擎管理器评估Java字符串代码时出错

时间:2013-12-11 18:58:24

标签: java string exception eval scriptengine

我正在尝试使用新闻组中另一个答案中的以下代码来评估Java中的字符串。

import java.lang.Object;

导入javax.script.ScriptEngine;

导入javax.script.ScriptEngineManager;

ScriptEngineManager m = new ScriptEngineManager();

ScriptEngine e = m.getEngineByName(“js”);

对象结果= e.eval(“13 + 23-3”);

然而, 我得到一个“未报告的异常javax.script.ScriptException; myst被捕获或声明被抛出”..编译时出错。 由于我仍然在很大程度上学习并且不熟悉异常处理,有人可以帮助我吗?

感谢。

1 个答案:

答案 0 :(得分:4)

当一个方法声明一个已检查的异常,例如ScriptException时,你必须捕获并处理它,或者声明你的方法抛出它。在后一种情况下,调用方法的每个方法现在必须捕获或声明它,并且链继续。

您可以使用try / catch块捕获异常:

try {
    Object result = e.eval("13+23-3");
    System.out.println("It worked!:" + result.toString());
}
catch (ScriptException se) {
    System.out.println("Problem in eval:", se.getmessage());
}