异常处理程序应保留原始异常

时间:2015-04-10 14:21:37

标签: logging sonarqube

当运行SonarQube时,发现一个名为&#34的异常;异常处理程序应保留原始异常"。完整的例外说明here

我们的意思很清楚。问题是编译器似乎允许我们使用以下语句(参见Compliant Solution):

 try { /* ... */ } catch (Exception e) { LOGGER.info("context", e); }

我们没有使用LOGGER,但是:

trc.traceRaw(DcWxTaTrc.INFO, "Exception <" + e.getMessage() + ">
   ignored");

有没有办法允许这种日志记录呢?如果是的话:怎么样?

1 个答案:

答案 0 :(得分:5)

这与用于记录问题的记录器无关。如果您查看更新的说明:http://jira.sonarsource.com/browse/RSPEC-1166

  

//不合规 - 异常丢失(仅保留消息)
  try {/ * ... * /} catch(Exception e){LOGGER.info(e.getMessage()); }

引发了一个问题,因为您只保留异常消息,因此您丢失了应根据规则记录的堆栈跟踪信息。