尝试将字符串转换为int并计算,但是:未处理的异常类型ScriptException

时间:2017-05-11 09:27:19

标签: javascript java syntax

我们有一个字符串输入,比方说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));
    }
}

2 个答案:

答案 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
    }
}