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

标签 java string exception eval scriptengine

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

导入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 被捕获或声明为抛出”.. 错误。 由于我仍在学习并且在很大程度上不熟悉异常处理,有人可以帮助我吗?

谢谢。

最佳答案

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

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

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());
}

关于java - 使用脚本引擎管理器评估 Java 字符串代码时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20527671/

相关文章:

java - 使用 Spring Boot OAuth2 客户端登录后访问用户数据

java - "Not allowed to load local resource: file:///C:....jpg"Java EE Tomcat

C++:一般来说,我应该使用字符串还是字符数组?

Javascript字符串通过连接构造?

java - ServerSocket.close()。它什么时候抛出异常?

exception - 何时包装异常

java - 创建访问单个特定类型的通用数组

java - 将带有 zoneId 的字符串 localdate 转换为 UTC 偏移日期 JAVA

Java、字符串差分算法

c++ - 如果构造函数抛出异常会发生什么?