当运行SonarQube时,发现一个名为&#34的异常;异常处理程序应保留原始异常"。完整的例外说明here。
我们的意思很清楚。问题是编译器似乎允许我们使用以下语句(参见Compliant Solution):
try { /* ... */ } catch (Exception e) { LOGGER.info("context", e); }
我们没有使用LOGGER,但是:
trc.traceRaw(DcWxTaTrc.INFO, "Exception <" + e.getMessage() + ">
ignored");
有没有办法允许这种日志记录呢?如果是的话:怎么样?
答案 0 :(得分:5)
这与用于记录问题的记录器无关。如果您查看更新的说明:http://jira.sonarsource.com/browse/RSPEC-1166
//不合规 - 异常丢失(仅保留消息)
try {/ * ... * /} catch(Exception e){LOGGER.info(e.getMessage()); }
引发了一个问题,因为您只保留异常消息,因此您丢失了应根据规则记录的堆栈跟踪信息。