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

Exception handlers should preserve the original exception

当运行 SonarQube 发现异常称为"Exception handlers should preserve the original exception"。完整的异常描述 here

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

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

我们没有使用 LOGGER,但是:

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

有没有办法也允许这种日志记录?如果是:如何?

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

// Noncompliant - exception is lost (only message is preserved)
try { /* ... */ } catch (Exception e) { LOGGER.info(e.getMessage()); }

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