我们有一个字符串输入,比方说2+2
。现在我们想要转换它以便计算它。我已经为它编写了以下代码,如果我在main方法中使用此throws ScriptException
,它就可以工作。但我不想在我的主要方法中使用它。但是,我得到了这个例外,我不知道如何绕过它?
问题出现在我any(str);
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.ScriptException;
public class Supporter{
public static void main(String[] args){
String str = "2+2";
any(str);
}
static void any(String hello) throws ScriptException{
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
System.out.println(engine.eval(hello));
}
}
答案 0 :(得分:1)
如果编译器抱怨有一个未处理的异常,那么......你需要处理它:
public static void main(String[] args){
String str = "2+2";
try {
any(str);
} catch (ScriptException se) {
System.out.println("There was a problem evaluating the expression" + str);
}
}
答案 1 :(得分:1)
如果我在main方法中使用此抛出ScriptException,它会起作用。但我不想在我的主要方法中使用它。
为什么?你的代码对我来说似乎很好。
没有理由避免在主方法中使用throws ScriptException
。
但是,如果您想要try..catch
,请尝试
public static void main(String[] args){
String str = "2+2";
try {
any(str);
}catch (ScriptException e) {
//error
}
}