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



运行SonarQube时,会发现一个异常,称为"异常处理程序应保留原始异常"。此处提供完整的异常描述。

意思对我们来说很清楚。问题是,我们是以下语句似乎被编译器允许(见兼容解决方案):

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

我们不是在使用LOGGER,而是:

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

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

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

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

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

最新更新