改进代码的错误处理

时间:2014-01-29 11:00:47

标签: java security try-catch

我想改进代码的一些安全方面。如果在执行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;
    }

1 个答案:

答案 0 :(得分:2)

一些意见:

  1. 请勿使用e.printStackTrace();。首先,它吞噬了链式异常中的有用信息。接下来,您无法控制是否应该打印。最后,您永远无法确定是否有stderr要打印到。

    改为使用日志框架。

  2. 请考虑定义自己的例外,而不是返回null。这将允许您包含有用的信息,用户(不理解任何此类用户)可以向您报告,以便您有机会找出错误发生的原因。