0

我正在使用 Arity 算术引擎进行计算。所以我想知道我使用时可能出现的所有异常

double res = Symbols.eval("string");

我将它封装在一个 try 块中

try{
double res = Symbols.eval("Expression");
return res;
}
catch(SyntaxException s)
{
System.out.println("Exception..!");
}

所以我想知道所有的异常是怎么产生的,这样我就可以知道我哪里可能出错了。

4

3 回答 3

1

不确定我是否完全理解这个问题,但是如果您捕获任何异常然后打印堆栈跟踪,您可以更准确地找出引发的异常类型以及导致它的原因。这将使您能够准确地将SyntaxError您提到的 s 与可能因其他原因而出现的任何其他异常区分开来。

try
{
    double res = Symbols.eval("Expression");
    return res;
}
catch(Exception e)
{
    e.printStackTrace();
}

打印堆栈跟踪非常重要,因为它可以让您准确找出问题来自代码的哪个位置。如果你只是做一个简单System.out.println("Error happned")的事情,你将不会得到那么多的信息。

当您打印堆栈跟踪时,您可以看到导致最终失败的精确的方法调用链,这可以很容易地找出错误出现的原因。

于 2014-07-18T15:03:13.217 回答
0

我相信System.out.println(e.getMessage());会给你更多有用的信息。

于 2014-07-18T16:09:52.780 回答
0

我不熟悉 Arity,尤其是因为我找到的所有链接都指向 404 错误页面。但除此之外,您可以捕获已知异常,并最终捕获任何其他异常,您可以稍后对其进行重构以处理它。

try {
    double res = Symbols.eval("Expression");
    return res;
} catch (SyntaxException s) {
    System.err.println("Syntax exception");
} catch (Exception e) {
    System.err.println("Unknown exception caught!");
}
于 2014-07-18T15:13:39.957 回答