使用包exp4j始终返回UnknownFunctionExpression和UnparsableExpressionException

时间:2012-11-04 10:59:32

标签: java

我必须解析一个包含我的java项目公式的字符串,并且我想使用包exp4j(http://www.objecthunter.net/exp4j/index.html)来执行此操作。但我总是得到同样的错误。它可能真的很愚蠢,但遗憾的是我错过了它。所以这就是我试过的:

我只是试着这个进行测试:

import de.congrace.exp4j.Calculable;
import de.congrace.exp4j.ExpressionBuilder;

public class Tester {
  public static void main (String[] args){
    Calculable calc = new ExpressionBuilder("3+2").build();
  }
}

现在eclipse告诉我Unhandled异常类型UnknownFunctionExpression和Unhandled异常类型UnparsableExpressionException。

之后我尝试使用上述网站上的一个例子:

import de.congrace.exp4j.Calculable;
import de.congrace.exp4j.ExpressionBuilder;

public class Tester {
  public static void main (String[] args){
    double varX = 2;
    double varY = 3;

    Calculable calc = new ExpressionBuilder("3 * sin(y) - 2 / (x - 2)")
      .withVariable("x", varX)
      .withVariable("y", varY)
      .build();
    double result1=calc.calculate();
  }
}

导致与上述相同的例外情况。

对不起任何不好的英语,我是德国人,感谢您的帮助:)

1 个答案:

答案 0 :(得分:2)

错误告诉您可能会发生已检查的异常,因此您必须自己处理。

你可以使用try / catch来处理它,或者只使用throws子句声明异常

public static void main (String[] args) throws UnparsableExpressionException{

    Calculable calc = new ExpressionBuilder("3+2").build();

}

或者您可以将代码包装在try / catch中以处理异常。

try {
    Calculable calc = new ExpressionBuilder("3+2").build();
}
catch(UnparsableExpressionException ex){
ex.printstacktrace();
}

同样适用于UnknownFunctionExpression。 并阅读Exceptional Handling in java here