有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用包exp4j的java总是返回UnknownFunctionExpression和UnparsableExpressionException

我必须解析一个字符串,该字符串包含我的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和未处理的异常类型UnparableExpressionException

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

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) 个答案

  1. # 1 楼答案

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

    您可以使用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