我正在使用运算引擎进行计算。所以我想知道当我使用
double res = Symbols.eval("string");
我把这封信放在一个试块里
try{
double res = Symbols.eval("Expression");
return res;
}
catch(SyntaxException s)
{
System.out.println("Exception..!");
}所以我想知道所有的异常都产生了什么,这样我就可以知道我可能出了什么问题。
发布于 2014-07-18 15:03:13
我不确定我是否完全理解这个问题,但是如果您捕捉到任何异常,然后打印堆栈跟踪,您可以更准确地确定抛出的异常类型以及导致异常的原因。这将使您能够准确地区分您提到的SyntaxError和其他可能因其他原因而产生的异常。
try
{
double res = Symbols.eval("Expression");
return res;
}
catch(Exception e)
{
e.printStackTrace();
}打印堆栈跟踪非常重要,因为它将使您能够准确地确定问题来自何处。如果您只是做一个简单的System.out.println("Error happned"),您将不会得到那么多的信息。
当您打印堆栈跟踪时,您可以看到导致最终失败的精确的方法调用链,这使您很容易找到错误产生的原因。
发布于 2014-07-18 15:13:39
我不熟悉这种情况,尤其是因为我找到的所有链接都会导致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-18 16:09:52
我相信System.out.println(e.getMessage());会给您提供更多可用的信息。
https://stackoverflow.com/questions/24827689
复制相似问题