3

我必须为我的 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告诉我未处理的异常类型UnknownFunctionExpression和未处理的异常类型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();
  }
}

导致与上述相同的异常。

抱歉英语不好,我是德国人,感谢您的帮助:)

4

1 回答 1

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方法。并在此处阅读有关java 中的异常处理的信息

于 2012-11-04T11:03:25.673 回答