异常处理程序应保留原始异常:记录或重新抛出此异常

KSK*_*KSK 2 java sonar-runner sonarqube sonarqube-5.0 sonarqube5.1

这是我的方法,当我尝试通过sonarQube分析我的代码时出现此错误:

异常处理程序应保留原始异常:记录或重新抛出此异常.

如果我没有像我的方法那样捕获异常,为什么会出现此错误?

我的方法:

for (String QT : Q_T) {

                try {
                        // some logic 
                    }

                } catch (JsonParseException e) {                    
                    LOG.log(Level.SEVERE, e.toString());
                } catch (JsonMappingException e) {
                    LOG.log(Level.SEVERE, e.toString());
                } catch (IOException e) {
                    LOG.log(Level.SEVERE, e.toString());
                }
                catch (Exception e) {
                    LOG.log(Level.SEVERE, e.toString());
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

car*_*ret 8

我相信它试图告诉你的是记录Exception原样,而不是toString()版本,就像这里一样,还要添加一些"上下文"或信息给log

for (String QT : Q_T) {
        try {
            // some logic 
        } catch (JsonParseException e) {                    
            LOG.log(Level.SEVERE, "context", e);
        } catch (JsonMappingException e) {
            LOG.log(Level.SEVERE, "context", e);
        } catch (IOException e) {
            LOG.log(Level.SEVERE, "context", e);
        } catch (Exception e) {
            LOG.log(Level.SEVERE, "context", e);
        }
}
Run Code Online (Sandbox Code Playgroud)