我想改进代码的一些安全方面。如果在执行alg.solve()
时出现任何错误,则不应停止该过程,而必须由null
返回runMethod()
。以下代码段是否会以这种方式工作?
public Result runMethod()
{
Algorithm alg = new Algorithm(this);
Result r = null;
try
{
r = alg.solve();
}
catch (Exception e)
{
e.printStackTrace();
}
return r;
}
答案 0 :(得分:2)
是
一些意见:
请勿使用e.printStackTrace();
。首先,它吞噬了链式异常中的有用信息。接下来,您无法控制是否应该打印。最后,您永远无法确定是否有stderr
要打印到。
改为使用日志框架。
请考虑定义自己的例外,而不是返回null
。这将允许您包含有用的信息,用户(不理解任何此类用户)可以向您报告,以便您有机会找出错误发生的原因。