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 を教えてくれます。

その後、言及されたWebサイトの例の1つを使用してみました:

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 に答える